Zurechtfinden mit PJSIP

Problem
Seit pascom 19 wurde von chan_sip auf res_pjsip umgestiegen. Einige gewohnte Asterisk CLI Befehle und Trunk/Endgeräte Optionen haben sich dadurch geändert.

Lösung

Im Asterisk Wiki wird das ganze so beschrieben: https://wiki.asterisk.org/wiki/display/AST/Migrating+from+chan_sip+to+res_pjsip

Zunächst ein paar Asterisk CLI Befehle die nun anders lauten:
alt:

sip show peers

neu:

pjsip show endpoints

(nur bedingt richtig, ein peer besteht nun aus Verschiedenen “Typen/Bestandteilen” auf die ich hoffentlich ein andernmal genauer eingehen kann: endpoint, aor, auth, identify, registration dessen jeweilige Werte man mittels pjsip show {type} ermitteln kann)

alt:

sip show registry

neu:

pjsip show registrations

gleichgeblieben:

queue show

alle mit core beginnenden Befehle sind ebenso gleichgeblieben.

Wer in der Cloud über die WebCLI beispielsweise die SIP Nachrichten debuggen möchte hat weiterhin die Möglichkeit dazu, hier die entsprechende Anleitung:
https://blogs.asterisk.org/2016/02/24/debugging-sip-message-traffic-with-pjsip-history/

Bitte bedenkt das sowohl der Endgerätestatus als auch die Ämterregistrierung mittlerweile im WebUI direkt angezeigt werden können.

Auch wenn wir versuchen alles für bekannte Ämter und Endgeräte richtig zu setzten, kann es natürlich sein das man etwas an den Einstellungen ändern will oder ein eigenes Amt anbinden möchte.

Bei den Endgeräten wird man im wesentlichen nur die endpoint Einstellungen anpassen wollen, Beispiel zu früher:

alt:

disallow=all
allow=alaw,opus

neu:

endpoint/allow=!all,alaw,opus 
;(endpoint/disallow wäre auch möglich)

Beim Amt gibt es natürlich Settings die nicht in diese Kategorie Fallen, hier kann bei uns im Webfrontend die Settings in den Optionen setzten in dem man (ähnlich wie beim Endgerät) die richtige Kategorie mit / getrennt davor angibt. Wenn man ein Setting im Internet gefunden hat aber nicht weiß, wo es dazu gehört kann man mittels pjsip show danach suchen, pascom bezogenes Beispiel:

pjsip show aor mdc_trunk_conf-4

Hier findet sich die qualify_frequency wieder, möchte ich diese also über die Optionen im Amt setzten, kann man

aor/qualify_frequency=20

verwenden, um den Wert abweichend vom Default zu setzen.

Seit pascom 19 können wir im Übrigen verschiedene “Defaultwerte” für Ämter und Endgeräte setzten. Dadurch ist es uns möglich einige Optionen die ohnehin bei allen Ämtern gleich waren, aber nicht zu den Endgeräten passten und daher nicht in der sip.conf gesetzt werden konnten aus dem WebUI zu verbannen. Diese Standardwerte finden sich unter /etc/asterisk/pjsip_wizzard.conf wieder.

Neben endpoint, aor, auth, identify und registration haben wir noch “eigene” zusätzliche Präfixe hinzugefügt. Wichtigstes Beispiel ist hier wohl header/ wodurch sich von den ausgehenden Regeln abweichende Nummern im PAI Header beispielsweise setzen lassen (QSC/Plusnet benötigen das für CLIP-no-screening beispielsweise):

header/P-Asserted-Identity=<sip:09916666666@provider.des.kundens>

Per Inline Script (oder Outbound-Script) lassen sich die SIP Header auch wieder seit 19.03 manipulieren, hier ein Beispiel für die Klingeltöne:

; setzen/überschreiben eines Headers
Set(HASH(__SIPHEADERS,Alert-info)=<http://www.notused.de>\;info=alert-group\;x-line-id=0)
 
; entfernen eines Headers: einfach den magischen Wert "remove" verwenden
Set(HASH(__SIPHEADERS,Alert-info)=remove)