Konfiguration des Codecs

Codecs werden pro Channel-Treiber konfiguriert: In pjsip.conf für SIP-Endpoints, in iax.conf für IAX-Peers.

Beispiel mit einem festen Codec

Soll ein PJSIP-Endpoint ausschließlich G.711 (alaw) sprechen:

[2000]
type=endpoint
disallow=all
allow=alaw
; ...

Beispiel mit mehreren Codecs zur Auswahl

Die allow=-Zeilen werden in der Reihenfolge ausgehandelt — die erste hat die höchste Priorität.

[2000]
type=endpoint
disallow=all
allow=ulaw
allow=alaw
allow=g722
allow=opus
; ...

Mit dieser Liste handelt Asterisk mit dem Telefon den Codec aus: Wenn beide Seiten opus unterstützen, gewinnt opus nicht automatisch — die Reihenfolge gibt die Präferenz vor, und hier steht ulaw vorn. Wer HD-Audio bevorzugen möchte, dreht die Reihenfolge um.

Mit PJSIP-Templates (siehe Konfigurations-Templates) vermeiden Sie, die Codec-Liste in jedem Endpoint-Block zu wiederholen:

[endpoint-template](!)
type=endpoint
disallow=all
allow=ulaw
allow=alaw
allow=g722
allow=opus

[2000](endpoint-template)
auth=2000
aors=2000

[2001](endpoint-template)
auth=2001
aors=2001

Im Dialplan: was spricht mein Channel gerade?

Die Funktion CHANNEL(audionativeformat) (ausgehend) bzw. CHANNEL(audioreadformat) (eingehend) verrät den aktuell gewählten Codec:

exten => 123,1,NoOp(Ich hoere: ${CHANNEL(audioreadformat)})
 same => n,NoOp(Ich sende: ${CHANNEL(audiowriteformat)})

Das ist beim Troubleshooting von Qualitäts- oder Transkodierungsproblemen extrem nützlich.