-
Notifications
You must be signed in to change notification settings - Fork 0
/
sip-custom-1-start.sh
65 lines (60 loc) · 1.71 KB
/
sip-custom-1-start.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/bash
set -e
# -----------------------------------------------------------------------------
# Warning:
# This script only works for jibri newer than 8.0-140-gccc7278-1
#
# Packages:
# apt-get install curl jq
#
# Usage:
# export JITSI_HOST="https://jitsi.nordeck.corp"
# export JITSI_ROOM="myroom"
# export PRIVATE_KEY_FILE="./signal.key"
#
# bash sip-custom-1-start.sh <DISPLAY_NAME>
#
# Example:
# bash sip-custom-1-start.sh "cisco"
# ------------------------------------------------------------------------------
[[ -z "$PRIVATE_KEY_FILE" ]] && PRIVATE_KEY_FILE="./signal.key" || true
DISPLAY_NAME="$1"
AUTO_ANSWER_TIMEOUT=360
JSON=$(cat <<EOF
{
"callParams": {
"callUrlInfo": {
"baseUrl": "$JITSI_HOST",
"callName": "$JITSI_ROOM"
}
},
"componentParams": {
"type": "SIP-JIBRI",
"region": "default-region",
"environment": "default-env"
},
"metadata": {
"sipClientParams": {
"sipAddress": "sip:[email protected]",
"displayName": "$DISPLAY_NAME",
"autoAnswer": true,
"autoAnswerTimer": $AUTO_ANSWER_TIMEOUT
}
}
}
EOF
)
# generate the bearer token
HEADER=$(echo -n '{"alg":"RS256","typ":"JWT","kid":"jitsi/signal"}' | \
base64 | tr '+/' '-_' | tr -d '=\n')
PAYLOAD=$(echo -n '{"iss":"signal","aud":"jitsi-component-selector"}' | \
base64 | tr '+/' '-_' | tr -d '=\n')
SIGN=$(echo -n "$HEADER.$PAYLOAD" | \
openssl dgst -sha256 -binary -sign $PRIVATE_KEY_FILE | \
openssl enc -base64 | tr '+/' '-_' | tr -d '=\n')
TOKEN="$HEADER.$PAYLOAD.$SIGN"
curl -sk \
-X POST $JITSI_HOST/jitsi-component-selector/sessions/start \
--header "Authorization: Bearer $TOKEN" \
--header "Content-Type: application/json" \
--data @- <<< $JSON | jq '.'