17 maj 2007 kl. 02.57 skrev Robert Lister:
On Wed, May 16, 2007 at 05:46:21PM -0500, Greg Oliver wrote:
If I push the response code back to the handset (Cisco 7960) then
it is even
more unhelpful as it uses the same error message for all SIP
error type
response codes: "Reorder" but does not tell you why the call
failed to set
up. If it actually put the SIP response error on the display,
that would be
good, but it doesn't. (at least SIP 8.6 and prior software versions)
In order to display the response on the handset, Cisco phones require
that you have privileges and CTI control over the phones. The only
un-authenticated things you can display through the phones are
through
the services and directories keys. Unfortunately, they are
keeping that
locked up since they want you to use them with their system.
Hopefully
they will change their minds one day.
Yes. I know that... This is exactly the limitation I am trying to work
around, by being able to send back meaningful tones to the phone from
asterisk in-band rather than sending back the SIP response codes
which all
get displayed by the handset as "Reorder" which is completely
useless in
informing the user what's wrong. (And the US reorder tone sounds
too much
like the UK engaged tone anyway.)
Even if the handset did display the SIP error response, I'm not
expecting
most users to understand the subtleties of what they all mean, so
it seems
better just to simplify it with a few well known tones most users are
already familiar with (unobtainable, equipment busy, user busy,
etc.) And it
will behave in the same way regardless of the model of handset.
("Call worked/Busy/Call failed...")
Unfortunately Dial() DIALSTATUS is a bit limited in that if call
setup fails
for some reason, it mostly returns CONGESTION. Playing a congestion
tone for
perhaps 12 different call setup problems including misdials,
doesn't help
either. I want to play the right tone (for, say, unobtainable,
equipment
busy, etc.)
The ISDN gateway I am using goes to great pains to send back the
correct SIP
response to asterisk, which then just reports it as "CONGESTION"
which is a
bit limiting.
The SIP response code is displayed on asterisk's console, I just
cannot see
a way to get at it in the dial plan....
There are multiple ways to get the result of a dial() operation. The
most detailed
way is to read the HANGUPCAUSE channel variable, which is translated
from
each channels signalling protocol response code. As the ISDN gateway,
Asterisk "goes through great pains" to translate SIP codes to the
ISDN cause
codes which we use as the "esperanto" code within the PBX core, which as
you know is multiprotocol.
The translation from SIP to the cause codes follows available RFCs
and where
those not cover the code, Cisco's documentation. I am sure that those
are the
same as your ISDN gateway adheres to.
So in order to do something useful, use the HANGUPCAUSE channel
variable.
/O
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --
asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users