#!/bin/sh set -eu GENERATED_DIR="${ASTERISK_GENERATED_DIR:-/etc/asterisk/generated}" mkdir -p "$GENERATED_DIR" PJSIP_FILE="$GENERATED_DIR/pjsip.telekom.conf" EXTENSIONS_FILE="$GENERATED_DIR/extensions.telekom.conf" PJSIP_WEBRTC_FILE="$GENERATED_DIR/pjsip.webrtc.conf" enabled="${TELEPHONY_TELEKOM_ENABLED:-false}" if [ "$enabled" != "true" ] && [ "$enabled" != "1" ] && [ "$enabled" != "yes" ]; then if grep -q "Von FEDEO generiert" "$PJSIP_FILE" 2>/dev/null \ && ! grep -q "Telekom-Trunk ist deaktiviert" "$PJSIP_FILE" 2>/dev/null; then echo "FEDEO Telefonie: bestehende FEDEO-Trunk-Konfiguration bleibt erhalten." exit 0 fi cat > "$PJSIP_FILE" <<'EOF' ; Telekom-Anbindung ist deaktiviert. EOF cat > "$EXTENSIONS_FILE" <<'EOF' ; Telekom-Anbindung ist deaktiviert. EOF cat > "$PJSIP_WEBRTC_FILE" <<'EOF' ; Kein externes WebRTC-Media-Rewrite konfiguriert. EOF exit 0 fi registrar="${TELEPHONY_TELEKOM_REGISTRAR:-tel.t-online.de}" sip_user="${TELEPHONY_TELEKOM_SIP_USER:-}" auth_user="${TELEPHONY_TELEKOM_AUTH_USER:-$sip_user}" password="${TELEPHONY_TELEKOM_PASSWORD:-}" caller_id="${TELEPHONY_TELEKOM_CALLER_ID:-$sip_user}" inbound_extension="${TELEPHONY_TELEKOM_INBOUND_EXTENSION:-1001}" outbound_prefix="${TELEPHONY_TELEKOM_OUTBOUND_PREFIX:-0}" external_media_address="${TELEPHONY_ASTERISK_EXTERNAL_MEDIA_ADDRESS:-${TELEPHONY_ASTERISK_EXTERNAL_SIGNALING_ADDRESS:-}}" if [ -z "$sip_user" ] || [ -z "$password" ]; then cat > "$PJSIP_FILE" <<'EOF' ; Telekom-Anbindung ist aktiviert, aber TELEPHONY_TELEKOM_SIP_USER oder TELEPHONY_TELEKOM_PASSWORD fehlt. EOF cat > "$EXTENSIONS_FILE" <<'EOF' ; Telekom-Anbindung ist aktiviert, aber nicht vollständig konfiguriert. EOF cat > "$PJSIP_WEBRTC_FILE" <<'EOF' ; Kein externes WebRTC-Media-Rewrite konfiguriert. EOF echo "FEDEO Telefonie: Telekom-Anbindung unvollständig, Trunk wird nicht erzeugt." >&2 exit 0 fi cat > "$PJSIP_FILE" < direct_media=no force_rport=yes rewrite_contact=yes rtp_symmetric=yes timers=no [telekom-registration] type=registration transport=transport-udp outbound_auth=telekom-auth server_uri=sip:$registrar client_uri=sip:$sip_user@$registrar contact_user=$sip_user retry_interval=60 expiration=480 line=yes endpoint=telekom [telekom-identify] type=identify endpoint=telekom match=$registrar EOF cat > "$EXTENSIONS_FILE" < _${outbound_prefix}X.,1,NoOp(FEDEO ausgehend über Telekom: \${EXTEN}) same => n,Set(CALLERID(num)=$caller_id) same => n,Dial(PJSIP/\${EXTEN}@telekom,60) same => n,Hangup() exten => _+X.,1,NoOp(FEDEO ausgehend über Telekom: \${EXTEN}) same => n,Set(CALLERID(num)=$caller_id) same => n,Dial(PJSIP/\${EXTEN}@telekom,60) same => n,Hangup() [from-telekom] exten => $caller_id,1,NoOp(FEDEO eingehend über Telekom DID: \${EXTEN}) same => n,Dial(PJSIP/$inbound_extension,30) same => n,Hangup() exten => s,1,NoOp(FEDEO eingehend über Telekom) same => n,Dial(PJSIP/$inbound_extension,30) same => n,Hangup() exten => _X!,1,NoOp(FEDEO eingehend über Telekom: \${EXTEN}) same => n,Dial(PJSIP/$inbound_extension,30) same => n,Hangup() EOF if [ -n "$external_media_address" ]; then cat > "$PJSIP_WEBRTC_FILE" < "$PJSIP_WEBRTC_FILE" <<'EOF' ; Kein externes WebRTC-Media-Rewrite konfiguriert. EOF fi echo "FEDEO Telefonie: Telekom-Trunk für $sip_user@$registrar erzeugt."