Hi List
I have stumbled over this challenge:
I have a kamailio server without dialog module. Only tmx module, acting
as registrar / rtpengine host.
If the call is routed over that server once, this works fine.
If the call is routed more than once (call from one location to another
on same registrar, call forwarding) then to correctly work, I would need
to engage rtpengine in a way to tell rtpengine to handle both call legs
separately.
By default, rtpengine identifies one call by Call-ID,FromTag,ToTag so
it considers all invocations to target one instance and on the 2nd
invocations it replaces the source rtp ip by it's own ip killing audio.
Using 'loop-protect' to prevent the 2nd invocation 'sort-of' works, but
not cleanly if I use different 'private' ip ranges on my voice core and
IC network to which CPE should not talk.
It is possible to pass a custom Call-ID to rtpengine. So this is how I
am considering finding a solution.
When passing the call-id to rtpengine I could append a leg identifier
to that call-id.
like $avp(rtp-callid) = $ci + $var(leg-id)
How could I reliably generate this leg-id / tell the legs apart?
Consider this situation:
leg 1 leg 2
CPE-A => Kam-Reg => Routing Core => Kam-Reg => CPE-B
Also I wonder if I can use an AVP at all? From Kamailio's Point of
view, the first invite being routed twice could be the same transaction
with same shared AVP, right?
Is there a way to pass some information via flags appended route-header?
Or maybe use the count of via or route header to tell the legs apart?
Any ideas very appreciated.
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web
http://www.imp.ch
______________________________________________________