[asterisk-dev] DNID and RDNIS are not carried across IAX2

Tilghman Lesher tlesher at digium.com
Mon Dec 28 08:57:24 CST 2009

On Sunday 27 December 2009 09:10:28 Nir Simionovich wrote:
> Hi All,
>   I'm not sure if this is a feature of Asterisk or a bug, but it would
> appear that IAX2 doesn't pass DNID and
> RDNIS information across servers. Examine the following test scenario:
> SIP Carrier --- SIP ---> Asterisk1 --- IAX2 ---> Asterisk2
>   When the call from the carrier is accepted at Asterisk1, DNID and
> RDNIS information is available. However,
> once the call traverses over IAX2 to Asterisk2, that information is
> purged and is no longer available. This causes
> issues when requiring the DNID information to be available,
> specifically, if you are using premium rate services
> development, where the RDNIS is used to indicate that the call had
> traversed the IN services platform, and not
> being pushed into the server directly - there are tons of examples.
>   I know the easy way is to use SIP across the board, but I believe this
> should also be carried across with IAX2.
> Unless I'm mistaken and I'll be happy to be corrected.

Actually, it would be the same way with SIP.  The problem is architectural.
We only inherit the callerid name and number when we create a slave channel.
This could be fixed starting in 1.8 (trunk), because the requesting channel is
passed along in the request, which could copy the dnid and rdnis from the
requesting channel, but there is no good way to do this in earlier versions.
The best workaround would be to use IAXVAR(), but that's only available in
1.6.0 and later.

Tilghman Lesher
Digium, Inc. | Senior Software Developer
twitter: Corydon76 | IRC: Corydon76-dig (Freenode)
Check us out at: www.digium.com & www.asterisk.org

More information about the asterisk-dev mailing list