AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Проблема с входящими звонками через транки (все идут через один транк)

Newbies/FAQ Forum 9 сообщений 18.08.2010 08:38 - 26.08.2010 16:28
#1 18.08.2010 08:38

Проблема с входящими звонками через транки (все идут через один транк)


Здравствуйте.
Поставил Elastix 2.0 (Asterisk 1.6.2.10). Завел внутренних пользователей создал несколько провайдерских транков. Настроил исх. и вх. маршруты. Поставил также Custom Contexts - для того, чтобы каждый пользователь мог звонить через определенный транк. Все это настроил. Все исходящие идут как надо, но вот внешние входящие звонки идут почему-то через один транк, который (как я понимаю) был зареген первым. Т.е. допустим, мне надо позвонить на номер 798-529. Набираю с сотового и согласно маршруту попадаю куда надо, но во время набора номера в панели Flash Operator Panel видно, что звонок идет через транк 798-522 (был заведен первым), хотя транк на номер 798-529 есть и в системе зареген:

elastix*CLI> sip show registry
Host dnsmgr Username Refresh State Reg.Time
192.168.206.10:5060 N 798545 285 Registered Wed, 18 Aug 2010 00:09:55
192.168.206.10:5060 N 798540 285 Registered Wed, 18 Aug 2010 00:09:55
192.168.206.10:5060 N 798538 285 Registered Wed, 18 Aug 2010 00:09:56
192.168.206.10:5060 N 798546 285 Registered Wed, 18 Aug 2010 00:09:56
192.168.206.10:5060 N 798529 285 Registered Wed, 18 Aug 2010 00:09:56
192.168.206.10:5060 N 798522 285 Registered Wed, 18 Aug 2010 00:09:56

Пробовал разграничить на транке звонки на входящие и исходящие (IN-798522 и OUT-798522). Звонки входящие все равно идут только по тому же транку причем предназначенный для исходящих вызовов (OUT-798522). Почему так - не пойму. Плиз, помогите?
Вот настройки на транке:

Trunk Description: SIP-798522
Outbound Caller ID: 798522

Outgoing Settings
Trunk Name: OUT-798522
PEER DETAILS:
host=192.168.206.10
fromdomain=192.168.206.10
fromuser=798522
username=798522
type=peer
password=798522
disallow=all
allow=g729&alaw&ulaw&gsm
insecure=port,invite

Incoming Settings
USER Context: IN-798522
USER Details:
fromdomain=192.168.206.10
fromuser=798522
username=798522
type=user
password=798522

Register String:
798522:798522@192.168.206.10/798522
#2 18.08.2010 09:46

а проблема-то в чём? Wink

Added after 7 minutes:

я подозреваю, что провайдер посылает запрос на порт 5060, определить, к какому именно транку относится соединение, asterisk не может.
#3 18.08.2010 09:58

здесь USER Context: IN-798522 имеет другое значение
не разбивайте по блокам исх и вх, сделайте все в одном и в нем пропишите
type=friend
context = куда_хотите_чтоб_попадали _входящие
#4 19.08.2010 00:45

edo1 wrote:
я подозреваю, что провайдер посылает запрос на порт 5060, определить, к какому именно транку относится соединение, asterisk не может.


Почему не может? Можно ли это как-то подправить на астериске?

Я думаю, что проблема не в этом. У меня используются аппаратные voip телефоны d-link. Раньше каждый из этих телефонов был подключен напрямую к прову по порту 5060. И все звонки входящие приходили туда куда надо. Значит проблема не в этом.

Added after 7 minutes:

zlat wrote:
здесь USER Context: IN-798522 имеет другое значение
не разбивайте по блокам исх и вх, сделайте все в одном и в нем пропишите
type=friend
context = куда_хотите_чтоб_попадали _входящие


Если не секрет, то для чего здесь USER Context?

Можно, пожалуйста, по-подробнее с "context = куда_хотите_чтоб_попадали _входящие"?
Мне нужно, чтобы на каждый транк приходили свои соединения, т.е. на 798-522 приходили звонки адресованные именно на этот номер и т.д.
Я так понимаю, нужно созддавать context в extensions_custom.conf для этого?
Объясните, плиз, я пока новичок в астериске.
#5 19.08.2010 08:12

Если я правильно понимаю ситуацию...
Вcе в контекст incomin
Дальше в диалплане разруливать:

Code:

[incomin]
exten => 798545,1,Hangup()
exten => 798540,1,Hangup()
exten => 798538,1,Hangup()
exten => 798546,1,Hangup()
exten => 798529,1,Hangup()
exten => 798522,1,Hangup()
#6 19.08.2010 08:18

_Pavel_ wrote:
Вcе в контекст incomin
Дальше в диалплане разруливать:

Code:

[incomin]
exten => 798545,1,Hangup()
exten => 798540,1,Hangup()
exten => 798538,1,Hangup()
exten => 798546,1,Hangup()
exten => 798529,1,Hangup()
exten => 798522,1,Hangup()


Спасибо! Попробую, как астериск подниму на реальной машине. Для тестирования поставил на виртуалку на Hyper-V -пришлось погеморойничать с дравами. А так работала. Но увы сегодня покрошился полностью.
#7 20.08.2010 07:02

_Pavel_ wrote:
Если я правильно понимаю ситуацию...
Вcе в контекст incomin
Дальше в диалплане разруливать:

Code:

[incomin]
exten => 798545,1,Hangup()
exten => 798540,1,Hangup()
exten => 798538,1,Hangup()
exten => 798546,1,Hangup()
exten => 798529,1,Hangup()
exten => 798522,1,Hangup()


Разобрался немного с диалпланами. Создал правила транков для входящих на них. В общем получается проблема в другом. Когда я в диалплане для первого в списке транка (7985-522) указал что куда звонить, то звонки вход. на него приходят, но когда я создал правила для остальных транков, то в трубке слышу, что номер не зарегистрирован. Хотя в sip show registry показаны статус всех транков "registered". Почему так?
Когда удалил первый транк (798-522) (на котором все работает), то заработали правила для второго транка в списке, но последующие также не работали - в трубке голос "номер не зарегистрирован". Все транки идут по одному порту 5060. Дело в этом или как?

P.S. Еще одна проблема возникла. Когда звоню с какого-нить внутр. номера на другой внутр., то я слышу отдельные искаженные звуки (как будто заикание, но только очень редкое и с искажениями). Система сама в норме - ресурсов свободных придостаточно. Причем астериск работает пока как тестовая, т.е. звонки не обслуживает, только мои.
Что здесь можно подкрутить?
#8 26.08.2010 09:34

Мне кто-нибудь поможет?!
#9 26.08.2010 16:28

Code:
core set verbose 3
воспроизводите проблему и выкладываете логи сюда.

тогда может быть кто-то поможет.