[asterisk-dev] How to get SIP packet source ip address in asterisk application

santoshchintalwar at gmail.com santoshchintalwar at gmail.com
Tue Nov 17 02:33:57 CST 2009


There is one way to access it.
Create a new header file in include/asterisk directory.
Remove the structure from chan_sip.c and add it to the new header, and 
include it in chan_sip.c as well as your custom application.
I did the same thing and it works fine for me.

Thanks,
Santosh.

Alex Massover wrote:
> Hi!
>
> I also want to access sip_pvt from custom application, I'm trying to follow your suggestion but AFAIU:
> sip_pvt is defined in chan_sip.c and there's no header that I can include, so there's no way to access sip_pvt from custom application?
>
> Accessing ((struct sip_pvt *) chan->tech_pvt)->callid  results in "error: dereferencing pointer to incomplete type"
>
> Do I miss something? I'm using 1.4.
>
> --
> Best Regards,
> Alex Massover
> VoIP R&D TL
> Jajah Inc.
>
>   
>> -----Original Message-----
>> From: asterisk-dev-bounces at lists.digium.com [mailto:asterisk-dev-
>> bounces at lists.digium.com] On Behalf Of Kai Hoerner
>> Sent: Monday, November 16, 2009 9:28 AM
>> To: Asterisk Developers Mailing List
>> Subject: Re: [asterisk-dev] How to get SIP packet source ip address in
>> asterisk application
>>
>> Hi,
>>
>> i suggest you leave the authentication to the asterisk SIP stack and
>> only let the authenticated peer enter the right context that contains
>> your call to Application().
>>
>>
>> if you really plan to implement authentication on your own (i see no
>> good reason for that) you should start by looking at the "ast_channel"
>> and "sip_pvt" structs. "sip_pvt" holds all information about the active
>> SIP "dialog" (i.e. "call" in this case)
>>
>> channel->tech_pvt is a pointer from the ast_channel abstraction to the
>> SIP tech-specific object. (of type sip_pvt)
>> Before accessing any of its properties you want to check if the channel
>> is type SIP.
>>
>> http://www.asterisk.org/doxygen/asterisk1.6.2/structsip__pvt.html
>>
>>
>> ast guy schrieb:
>>     
>>> Hi,
>>>
>>>  I have made an application an asterisk. Can any one tell how do I
>>>       
>> get
>>     
>>> the source IP address of the SIP packets inside my app_Application()?
>>> Application only gets the ast_channel variable and *data passed to
>>>       
>> it.
>>     
>>> SIP Call is being forwarded to my application from some Service
>>> Provider. So when app_Applicaiton() is in execute state then I want
>>>       
>> to
>>     
>>> get the sip source packet ip address and then authenticate it.
>>>
>>> Regards,
>>> /ag
>>>
>>> _______________________________________________
>>> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>>>
>>> asterisk-dev mailing list
>>> To UNSUBSCRIBE or update options visit:
>>>    http://lists.digium.com/mailman/listinfo/asterisk-dev
>>>
>>>
>>>       
>> _______________________________________________
>> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>>
>> asterisk-dev mailing list
>> To UNSUBSCRIBE or update options visit:
>>    http://lists.digium.com/mailman/listinfo/asterisk-dev
>>
>> This mail was received via Mail-SeCure System.
>>
>>     
>
>
> This mail was sent via Mail-SeCure System.
>
>
>
> _______________________________________________
> --Bandwidth and Colocation Provided by http://www.api-digital.com--
>
> asterisk-dev mailing list
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev
>
>   




More information about the asterisk-dev mailing list