I'm trying to implement direct_media between multiple peers and an
uplink provider, all of whom have direct_media=yes configures.
For originating calls to the uplink provider direct_media=yes works like
expected. SIP flows through asterisk, rtp doesn't
SIP: enduser <-> SBC <-> asterisk 13 <-> uplink
RTP: enduser <-> SBC <-----------------> uplink
SBC matches an endpoint based on ip and dials the uplink:
-- Executing [+31xxxxxxxxx@outgoingrr:9] Dial("PJSIP/sbcs-00000092",
"PJSIP/+31xxxxxxxxx@uplink") in new stack
-- Called PJSIP/+31xxxxxxxxx@uplink
-- PJSIP/uplink-00000093 is making progress passing it to PJSIP/sbcs-00000092
-- PJSIP/uplink-00000093 answered PJSIP/sbcs-00000092
-- Channel PJSIP/uplink-00000093 joined 'simple_bridge' basic-bridge
<3b25c543-13a3-4d74-b2fe-7122a1cfe4a4>
-- Channel PJSIP/sbcs-00000092 joined 'simple_bridge' basic-bridge
<3b25c543-13a3-4d74-b2fe-7122a1cfe4a4>
> Bridge 3b25c543-13a3-4d74-b2fe-7122a1cfe4a4: switching from simple_bridge
technology to native_rtp
> Remotely bridged 'PJSIP/sbcs-00000092' and 'PJSIP/uplink-00000093' - media
will flow directly between them
> Remotely bridged 'PJSIP/sbcs-00000092' and 'PJSIP/uplink-00000093' - media
will flow directly between them
Whoever when a terminating call comes in from the uplink provider, a sip
request is send to a redirector. The redirector has redirect_method=uri_core
configured (the only method that works for me).
-- Executing [+31xxxxxxxxx@incoming:11] Dial("PJSIP/uplink-00000094",
"PJSIP/+31xxxxxxxxx@pathfinder") in new stack
-- Called PJSIP/+31xxxxxxxxx@pathfinder
-- Now forwarding PJSIP/uplink-00000094 to
'PJSIP/pathfinder/sip:[email protected]' (thanks to
PJSIP/pathfinder-00000095)
...
-- PJSIP/pathfinder-00000096 answered PJSIP/uplink-00000094
-- Channel PJSIP/pathfinder-00000096 joined 'simple_bridge' basic-bridge
<1bf02059-ea8f-4f9c-bc33-8ae99ba45c9a>
-- Channel PJSIP/uplink-00000094 joined 'simple_bridge' basic-bridge
<1bf02059-ea8f-4f9c-bc33-8ae99ba45c9a>
...
-- Channel PJSIP/pathfinder-00000096 left 'simple_bridge' basic-bridge
<1bf02059-ea8f-4f9c-bc33-8ae99ba45c9a>
-- Channel PJSIP/uplink-00000094 left 'simple_bridge' basic-bridge
<1bf02059-ea8f-4f9c-bc33-8ae99ba45c9a>
The request now gets routed based on a fully qualified domainname (with
NAPTR/SRV records), which ultimately resolves to an ip that is matched in the
endpoint SBC used above to originate a call. But now the asterisk stays in the
loop regarding RTP, a simple bridge is created but never switches to direct
media.
SIP: enduser <-> uplink <-> asterisk 13 <-> pathfinder (302 redirect)
SIP: enduser <-> uplink <-> asterisk 13 <-> sip.xxxxxx.nl
RTP: enduser <-> uplink <-> asterisk 13 <-> sip.xxxxxx.nl
Anybody got an idea why the last scenario fails to work?
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
Check out the new Asterisk community forum at: https://community.asterisk.org/
New to Asterisk? Start here:
https://wiki.asterisk.org/wiki/display/AST/Getting+Started
asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users