Wichtig, das Problem ist durch einen nicht-unterstützen Trunk aus Kanada aufgefallen. Ich erwarte hier keinen Produkt-Support, möchte dennoch auf diesen Fehler aufmerksam machen!
In meinem Trunk habe ich folgende Option gesetzt endpoint/allow=!all,ulaw
, um ausschließlich PCMU zu benutzen. Allerdings passiert folgendes: Pascom sendet im SDP header PCMA und dann PCMU in dieser Reihenfolge. Dadurch wird den Clients die Nutzung des Codec PCMA signalisiert, aber tatsächlich PCMU für die Tonspur verwendet. Als Ergebnis ist die Audiospur beider Teilnehmer in der Rufaufzeichnung in Pascom zwar vorhanden, aber am Telefon hören sie sich gegenseitig nicht. PCMA wird vom Provider unseres SIP-Carriers scheinbar nicht unterstützt und ist in Nord-Amerika auch nicht standard. Das Problem ist übrigens nach einem Pascom-Update vor etwa 5 Wochen erstmals aufgetreten. Seither versuchen wir intern die Ursache zu klären und sind überzeugt, dass es am falschen Codec im SDP header liegt.
Könnte sich jemand von Pascom, trotz fehlender Unterstützung, dieses Verhalten mal anschauen? Spätestens, wenn ihr US-Rufnummern anbietet und US-Kunden habt, wird dieses Problem zunächst nicht nachvollziehbare Störungen verursachen.
Update: Nur eingehende Anrufe sind betroffen! Bei ausgehenden Anrufen wird die Reihenfolge eingehalten und es gibt keine Probleme.
1 Like
Guten Morgen,
ich habe das mal nachgestellt und einen meiner generischen Trunks auf “nur ulaw” umgebogen. Und das sieht in meinem Test genauso aus wie erwartet.
v=0
o=- 413356725 413356725 IN IP4 100.x.y.z
s=Asterisk
c=IN IP4 100.x.y.z
t=0 0
m=audio 11908 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=maxptime:140
a=sendrecv
Solche Fehler können sich immer mal in neue Asterisk-Versionen einschleichen, aber in dem Fall kann ich es nicht reproduzieren.
Vielen Dank für deine Rückmeldung! War dies ein ausgehender oder eingehender Anruf? An dieser Stelle weitere Details:
- Ich habe in dem Trunk mehrere Accounts, auch mit PCMA.
- Das Problem betrifft nur eingehende Anrufe.
- Bei den europäischen SIP-Trunks verwende ich
endpoint/allow=!all,opus,g722,alaw,ulaw
- Beim kanadischen
endpoint/allow=!all,ulaw
, um PCMU zu “erzwingen”
Könntest du das für mich auf diese Weise nachstellen? Sprich, testen, ob das Problem bei eingehenden Anrufen auftritt, wenn ein Trunk PCMA benutzten soll und der andere nur PCMU? Ich denke, ich werde mal versuchen einen zweiten Account zu erstellen, in dem nur PCMU verwendet werden soll.
Okay, das mit den eingehenden Anrufen fehlte, mein Testanruf war nur ausgehend. Aber auch eingehend kann ich das nicht nachstellen. Der Provider bietet G.722, alaw, ulaw und noch mehr an, wir antworten so:
v=0
o=- 1786231129 1786231132 IN IP4 100.x.y.z
s=Asterisk
c=IN IP4 100.x.y.z
t=0 0
m=audio 13400 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=maxptime:140
a=sendrecv
In dem Account sind auch ein pascom Trunk und weitere, die auch PCMA verwenden. Sieht für mich erstmal weiter nach “Works as intended” aus.
1 Like
Vielen Dank! Noch zum letzten Absatz: Was ich meinte, ist ein generischer Trunk, in dem mehrere Accounts drin sind. Wenn das bei dir ebenfalls der Fall ist, dann muss ich mal weiterschauen. Hast du denn eine Idee, woran es sonst noch liegen könnte, dass bei uns PCMA im SDP steht, aber PCMU für den Audio-Stream verwendet wird? Habe ich vielleicht etwas falsch in meiner PJSIP Endpoint-Konfiguration?
Das Setup habe ich gerade nicht hier, aber eigentlich[tm] sollte jeder Account getrennt mit seinen Settings im Asterisk als Endpoint landen. Das sollte keine Rolle spielen.