Hello list,
I am trying to solve a problem and after unsucessfully chasing forums
and google for some hours, I turn to you in hope of a solution. I feel
it's just a configuration issue but I just can't get my head wrapped
around it.
The situation is basically this: I have an Asterisk connected to an
Alcatel OmniPCX via SIP. Asterisk only ever does SIP and has no
dedicated hardware phone interface. The Alcatel PBX is connected to the
public phone net, and is configured to forward all calls to a certain
number to Asterisk. Also when Asterisk dials out, that number is
correctly transmitted by the PBX. Asterisk's job is to implement a
special highly dynamic call routing, controlled by a script.
I tested all functionality I need first with simple Softphones from my
work PC. Everything I needed worked fine. Now connected to the PBX it
works too, but in certain situations, I simply get no audio at all. Call
setup and dynamically calling the correct recipient works fine, but if
the callee picks up the phone, there simply is only silence on the line.
More precisely, I have the following situation:
I call a number (with my desktop phone), the number is picked up by the
Alcatel PBX and is calling Asterisk via SIP on a specific extension.
Asterisk determines the target, initiates a call via SIP out over the
Alcatel and the other phone rings (say my mobile). I can pick it up and
the call is connected.
Now, if I have canreinvite=no, meaning the connection goes like this:
Desk Phone -> PSTN -> Alcatel PBX -> SIP -> Asterisk and
Asterisk -> SIP -> Alcatel PBX -> PSTN -> mobile
then I hear nothing. There is only silence. Talking with the Alcatel PBX
people, they can tell me that their SIP equipment is allocating codec
and compressor resources so the media path is "open". I can also
confirm
that there is RTP network traffic passing to and from Asterisk.
But there is only silence.
If I change it so, that either source or destination of the call is not
going through the PBX but to one of my Softphones registered at
Asterisk, then it works fine. The Softphone can receive or initiate the
call and there is audio between the two.
If I set canreinvite=yes and I have set directrtpsetup=yes to say
Asterisk I want it to "shortcut" anyway, since I'm only interested
in
the call setup and not really in the actual audio/media data, then the
above scenario does work. Desktop phone to mobile phone both via Alcatel
PBX works fine, except that I don't get the call disconnected when one
side hangs up (seems simply to keep the line open with silence from then
on).
However while that scenario works, call origination then fails. If I
perform a call origination, then the first phone rings, and if picked
up, the second phone rings exactly once (or actually, it feels like a
fraction of "one ring") and then the first phone gets a NO ANSWER/BUSY
response right ahead. If I remove once again the canreinvite=yes then
the second phone rings normally on call origination and can be picked
up, but again, I am having no audio, only silence.
So in short, with
canreinvite=yes, everything through Asterisk, call forward and call
origination works but no audio
canreinvite=no, call forward works (but no hangup detection), call
origination fails with the called member only receiving one single ring.
I really can't find any hints to this, but I think it must be a simple
configuration issue on my end. I can provide configuration snippets, but
I think the issue is something basic that if someone knows what I am
doing wrong, can immediately point me to the answer. Otherwise, here's
the sip.conf part where the connection is defined to the PBX:
[pbx]
type=peer
secret=something
defaultuser=something
fromuser=7889 ; extension we are called with
host=10.64.x.y ; IP of PBX sip gateway
fromdomain=172.29.x.y ; our IP.
canreinvite=yes
context=pbxIN
direct call forward out again (the scenario above)
extensions.conf:
exten => 7889,1,Dial(SIP/pbx/0<phonenumber>)
If more debug / config information is required, I'll be happy to provide
that.
Thanks in advance
Rene