Two Interfaces, Pjsip, 180 Ringing Contains Wrong Contact IP

Home » Asterisk Users » Two Interfaces, Pjsip, 180 Ringing Contains Wrong Contact IP
Asterisk Users No Comments

Hi Gang

I have stumbled over a strange issue with Asterisk 13.18.3

I have two interfaces, two different IP Addresses. One facing to the internet, and one facing to am internal voice lan.

Therefore I defined two different transports and endpoints:

[transport-udp-internal]
type=transport protocol=udp bind=**INTERNAL-IP**:5060
tos=cs3
cos=3
allow_reload=yes

[transport-udp-external]
type=transport protocol=udp bind=**EXTERNAL-IP**:5060
tos=cs3
cos=3
allow_reload=yes

[internal]
type=endpoint transport=transport-udp-internal context=from-internal
[…]
rtp_symmetric=yes direct_media=no force_rport=yes rewrite_contact=yes media_address=***INTERNAL-IP***
bind_rtp_to_media_address=yes

[external]
type=endpoint transport=transport-udp-external context=from-external
[…]
rtp_symmetric=yes direct_media=no force_rport=yes rewrite_contact=yes media_address=***EXTERNAL-IP***
bind_rtp_to_media_address=yes

Dial Plan looks something like. This is more or less for testing purposes, later this will be replaced by an AGI routing and digit translation engine.

[from-external]
exten => _0xxxxxxxxx,1,NoOp(FROM: ${CALLERID(Number)} TO: ${EXTEN})
exten => _0xxxxxxxxx,n,Set(CALLERID(Number)=+41${CALLERID(Number):1})
exten => _0xxxxxxxxx,n,Set(DESTINATION=+41${EXTEN:1})
exten => _0xxxxxxxxx,n,NoOp(FROM: ${CALLERID(Number)} TO: ${DESTINATION})
exten => _0xxxxxxxxx,n,Dial(PJSIP/${DESTINATION}@internal)

The Dialogue observed is:

caller => INVITE => external IP (eip)
eip => 100 trying => caller

internal ip (iip) => INVITE => destination destination => 100 trying => iip destination => 180 Ringing => iip

eip => 180 ringing => caller THIS contains a contact header with the INTERNAL IP
caller => PRACK => iip (unreachable ip)

What do I have to do, so the 180 ringing does contain the correct external IP?
If I disable 100rel I stumble over the next one

As soon as the connection is established, the 200 OK sent to the original caller also contains a contact header with the internal ip.

Mit freundlichen Grüssen

-Benoît Panizzon-

I m p r o W a r e A G – Leiter Commerce Kunden