[Asterisk-Dev] chan_zap bug with hidecallerid?
andrea.venturi at tin.it
Thu May 8 08:13:10 MST 2003
Pauline Middelink ha scritto:
> On Wed, 07 May 2003 around 11:07:45 -0500, Martin Pycko wrote:
>>Well I looked at the code and with pri_call thereis no hidecallerid.
>>There is l that contains either the callerid number or is empty.
>>I added checking for hidecallerid when initializing the l variable
>>and that should fix this problem. It's in CVS.
> Our telco gives out an warning for an empty CALLER ID. I would
> prefer for libpri to setup a call WITHOUT callerid if it detects
> the callerid is empty.
i believe there's a misunderstanding WRT hide caller id in an outbound
call from an host with an E100P to PSTN thru an EUROISDN E1 link.
let's use this doc as reference:
this is our italian experience:
we are forming a call setup packet. in the Q931 call setup packet there
are a bunch of information elements (IE). we speak WRT "calling party
number" (paragraph 4.5.10 in the doc)
if the Q931 "calling party number" IE is missing, our italian telco will
add (with "network provided" flag so it's visible to the called party!)
our real calling number.
if the Q931 "calling party number" IE is present but empty WRT number,
the telco will replace the empty number with the real one without taking
care to respect our "presentation indicator" flag (octet 3a)
so, in our experience the real solution to this problem:
hide the calling party number to the remote called party
1. fill the calling party number with (one of) the real number(s)
2. fill the octet 3a with Presentation Indicator flag 01 (bit 7-6) see
Table 4-1/Q931 in the previous .pdf
so, actually, to hide a number, you have to put something like 0x20 in
this octet 3a i.e:
libpri.h:#define PRES_PROHIB_USER_NUMBER_NOT_SCREENED 0x20
and not the actual:
libpri.h:#define PRES_NUMBER_NOT_AVAILABLE 0x43
who means "calling party number unavailable due to interworking and
screened by the network.."
maybe the situation (the semantics) is different in other countries! i
smell one of the many little usual EUROISDN flavours ;-)
anyway, we can tweak the actual CVS to hide or show the callerid on a E1
link basis (in zapata.conf) but we'd like to set in on a per call
basis.. the stuff could /should be implemented with some flag passed
down from zt_call() to pri_call()
what do you think?
>>On Wed, 7 May 2003, Lorenzo Pallara wrote:
>>> We are taking care of hiding caller ids on E400P and we have a couple of
>>>problems to solve:
>>>In chan_zap.c the zt_call() passes the following argument to the pri_call():
>>>hidecallerid ? PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN :
>>>but the logic is the opposite, isn't it?
>>>hidecallerid ? PRES_NUMBER_NOT_AVAILABLE :
>>>anyway the correct line for q931, tested in Italy, looks like:
>>>hidecallerid ? PRES_PROHIB_USER_NUMBER_NOT_SCREENED :
>>>The value of hidecallerid is specified from zapata.conf but we need to
>>>overwrite it at runtime per call basis, is there already a way or is it
>>>necessary to add information to the ast_channel structure or to the
>>> Lorenzo Pallara
>>>Asterisk-Dev mailing list
>>>Asterisk-Dev at lists.digium.com
>>Asterisk-Dev mailing list
>>Asterisk-Dev at lists.digium.com
> Met vriendelijke groet,
> Pauline Middelink
More information about the asterisk-dev