Difference between revisions of "DID is not working"

From Kolmisoft Wiki
Jump to navigationJump to search
 
(6 intermediate revisions by 2 users not shown)
Line 19: Line 19:


<br><br>
<br><br>
= Bad Localization Rule =
== Bad Localization Rule ==
 
Incoming DID should be in E164 format if not - it should be transformed to such using Localization.
 
If DID after Localization is not in E164 format - call will fail.


Check Localization Rules, which can add/cut some prefix to/from incoming DID.
Check Localization Rules, which can add/cut some prefix to/from incoming DID.
Line 26: Line 30:


<br><br>
<br><br>
===Example===
===Example #1===
 
DID comes in local format. And in the system we entered DID in E164 format.
 
Call will fail, because system will not find our DID.
 
To fix this we need to create separate Location for DID's Provider and create Rule to transform incoming DID from Local format to E164.
 
 
<br><br>
===Example #2===


In Global Location User created rule: Add: "34", Cut: "", Min: 9, Max 14
In Global Location User created rule: Add: "34", Cut: "", Min: 9, Max 14
Line 43: Line 57:


<br><br>
<br><br>
='s' extension=
='s' extension=


Line 69: Line 84:
In order to receive calls to several DIDs->Devices you need to tell your provider to send correct destination information.
In order to receive calls to several DIDs->Devices you need to tell your provider to send correct destination information.


=Incoming call shows up at wrong provider or does not come in=
Make sure that your DID provider is not configured with hostname only.
Asterisk cannot determine incoming calls from DID by using only the hostname as it cannot do a reverse mapping, IP is also needed.
= I'm using a Cisco gateway, but calls come up as Failed(200) =
Cisco gateways tend to send the initial Invite from random ports.
And even if you have set the port to be 5060 in provider settings, call will not be authenticated.
Solution to this is to enable the "Insecure port" option in [[Providers#SIP Specific | provider settings]]


<br><br>
<br><br>
= See also =  
= See also =  
* [[I HAVE A PROBLEM]]
* [[I HAVE A PROBLEM]]

Latest revision as of 09:34, 29 February 2012

Basic steps

  • Go to STATISTICS - Calls - Last Calls window, select current day, order calls by date to show most recent calls at the top and find your failed call, check for it's Hangup Cause Code. Check the reason why call failed here. Resolve by provided instructions (if any).
  • Make sure that DID is routed to your server. Here you can find how to route DIDww company's DID to your server.
  • Do you need to register to your Provider in order to use DID from him? (Usual answer is YES). Did you registered to your provider?
  • Check Asterisk CLI for error message.
  • If you can't see any output on Asterisk CLI when making call to DID, use sip debug or iax2 set debug commands
  • Check for error message




DID in wrong format

DID in the system must be in E.164 format.

  1. Create DID in the system in E.164 format
  2. Call to the system, watch CLI
  3. If DID comes not in E.164 format - use Localization to fix incoming broken DID number and convert it to E.164 format



Bad Localization Rule

Incoming DID should be in E164 format if not - it should be transformed to such using Localization.

If DID after Localization is not in E164 format - call will fail.

Check Localization Rules, which can add/cut some prefix to/from incoming DID.

This makes incoming DID number not match with the DID entered in the system and call will fail.



Example #1

DID comes in local format. And in the system we entered DID in E164 format.

Call will fail, because system will not find our DID.

To fix this we need to create separate Location for DID's Provider and create Rule to transform incoming DID from Local format to E164.




Example #2

In Global Location User created rule: Add: "34", Cut: "", Min: 9, Max 14

This added 34 to every number between 9-14 length.

As incoming DID was 11 digits length, 34 was added in front of it and system was unable to find it:

[2011-07-30 10:24:25] NOTICE[538]: app_mor_authentication.c:1289 Dst: 182994*****
.. [2011-07-30 10:24:25] NOTICE[538]: app_mor_destinations.c:285 mor_localize_destination: Localization info: cut: , add: 34 [2011-07-30 10:24:25] NOTICE[538]: app_mor_destinations.c:314 mor_localize_destination: Localized destination: 34182994***** [2011-07-30 10:24:25] NOTICE[538]: app_mor_dids.c:22 mor_check_did: Checking DID (34182994*****) ... [2011-07-30 10:24:25] NOTICE[538]: app_mor_dids.c:282 mor_check_did: DID not found...

Solution to this problem was to fix rule: Min: 9, Max: 9



's' extension

  • If 's' extension is reached means your provider does not send destination information.

Usually you will hear "SOMETHING IS TERRIBLY WRONG" when call goes to s extension.

Solution:

  1. In register string add /SOME_DID at the end
  2. Create SOME_DID in DIDs window
  3. Assign this SOME_DID to some device

Example:

register => username:secret@sip.provider.com/1234567890

Now every call which comes from sip.provider.com will go to DID 1234567890.

We need to create such DID and assign some device to it to receive all calls coming from this provider.

This solution is workaround when provider does not send correct destination information (most of providers do this).

One bad thing about this is that only 1 device can receive calls from this provider.

In order to receive calls to several DIDs->Devices you need to tell your provider to send correct destination information.

Incoming call shows up at wrong provider or does not come in

Make sure that your DID provider is not configured with hostname only.

Asterisk cannot determine incoming calls from DID by using only the hostname as it cannot do a reverse mapping, IP is also needed.

I'm using a Cisco gateway, but calls come up as Failed(200)

Cisco gateways tend to send the initial Invite from random ports.

And even if you have set the port to be 5060 in provider settings, call will not be authenticated.

Solution to this is to enable the "Insecure port" option in provider settings



See also