[Asterisk-Users] Syntax for hiding caller ID but still passing ANI?

Lorenzo Pallara lpallara at cineca.it
Tue Aug 5 01:52:12 MST 2003


We did something like this in chan_zap at pri_call() time:

case SIG_PRI:

[...]

if (ast->callerid) {
    strncpy(callerid, ast->callerid, sizeof(callerid)-1);
    ast_callerid_parse(callerid, &n, &l);
    if (l) {
        ast_shrink_phone_number(l);
        if (!ast_isphonenumber(l))
            l = NULL;
    }
}

[...]

if (l) {
    pres = ast->hidecallerid ?
PRES_PROHIB_USER_NUMBER_NOT_SCREENED :
PRES_ALLOWED_USER
} else
    pres = PRES_NUMBER_NOT_AVAILABLE;

if (pri_call(p->pri->pri,  p->call,
    p->digital ? PRI_TRANS_CAP_DIGITAL : PRI_TRANS_CAP_SPEEC
    p->prioffset, p->pri->nodetype == PRI_NETWORK ? 0 : 1, 1, l,
    p->pri->dialplan - 1,
    c + p->stripmsd, p->pri->dialplan - 1,
   ((p->law == ZT_LAW_ALAW) ?PRI_LAYER_1_ALAW : PRI_LAYER_1_ULAW)))
{

[...]

where hidecallerid is a new field we added in ast_channel structure and it's
set by our apps...
As far as we can understand this should be more compliant to the q931 specs.
(and it works for us in Italy ;-)

my 2 cents,
    Lorenzo


----- Original Message ----- 
From: "Martin Pycko" <martinp at digium.com>
To: <asterisk-users at lists.digium.com>
Sent: Monday, August 04, 2003 8:34 PM
Subject: Re: [Asterisk-Users] Syntax for hiding caller ID but still passing
ANI?


> l is set a couple of lines above. Basically l carries the nubmer so if
> there is no callerid in 'l' then we send this other flag 'callerid not
> available'.
>
> You need to choose one of these flags:
> /* Presentation */
> #define PRES_ALLOWED_USER_NUMBER_NOT_SCREENED   0x00
> #define PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN  0x01
> #define PRES_ALLOWED_USER_NUMBER_FAILED_SCREEN  0x02
> #define PRES_ALLOWED_NETWORK_NUMBER                             0x03
> #define PRES_PROHIB_USER_NUMBER_NOT_SCREENED    0x20
> #define PRES_PROHIB_USER_NUMBER_PASSED_SCREEN   0x21
> #define PRES_PROHIB_USER_NUMBER_FAILED_SCREEN   0x22
> #define PRES_PROHIB_NETWORK_NUMBER                              0x23
> #define PRES_NUMBER_NOT_AVAILABLE                               0x43
>
> I think it might be PROHIB....PASSED_SCREEN but not sure. Check q931
> specs.
>
> Martin
>
>
> On Mon, 4 Aug 2003, John Todd wrote:
>
> >
> > I have a question regarding the flags for hiding caller ID presentation:
> >
> > My customer has a requirement that they are able to specify if
> > outbound calls (on a T100P) will have the caller ID displayed or not.
> > This could be easily solved, of course, by not setting a caller ID
> > when creating the outbound call.  However, the PRI to which this
> > T100P is connected _must_ see a valid caller ID, and the caller ID is
> > used for billing purposes.
> >
> > I know that there is the ability to hide caller ID within the Zaptel
> > libraries, using the presentation flags.  If set correctly, the
> > expected behavior would be that the ANI would be sent to the switch,
> > but with a flag that would tell the remote switch to suppress the
> > caller ID from being transmitted to the end user.
> >
> > How does one activate that presentation switch from within a dialplan?
> >
> > Searching the archives gives me some hints, but no answers.
> > Searching the code, I see in channels/chan_zap.c around line 1399
> > that the PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN and
> > PRES_NUMBER_NOT_AVAILABLE are referenced, but I'm not clear on where
> > "l" is set, or even if that is a trigger.  Can someone give me a hand
> > on syntax on this?
> >
> > JT
> > _______________________________________________
> > Asterisk-Users mailing list
> > Asterisk-Users at lists.digium.com
> > http://lists.digium.com/mailman/listinfo/asterisk-users
> >
>
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
>
>




More information about the asterisk-users mailing list