Страница 1 из 2

Как раздать несколько SIP номеров?

Добавлено: 09 дек 2010, 06:16
levantuev
Провайдер по SIP выдал: ip, логин, пароль.
Дал 3 внешних номера.

Вот эти 3 номера нужно отдать на SIP телефоны в офисе, как это реализовать? В какую сторону смотреть?

Re: Как раздать несколько SIP номеров?

Добавлено: 09 дек 2010, 12:14
ded
Входящие конфигурируются через модуль Inbound routes (в терминологии freePBX), каждый номер, который провайдер подаёт - это DID. Его надо направить на соответствующий экстеншн.
Для ручных конфигов тоже всё просто:
exten => 526354,1,Dial(SIP/101,,tTr)
exten => 526355,1,Dial(SIP/102,,tTr)
exten => 526356,1,Dial(SIP/103,,tTr)
это если сходить из того, что провайдер передаёт номера не users ID типа 12a4fc7, а сам DID.
Это обычно видно по строке регистрации
register => 526354:superpasswd@mega.provider.org/526354
register => 526355:superpasswd@mega.provider.org/526355
register => 526356:superpasswd@mega.provider.org/526356

Re: Как раздать несколько SIP номеров?

Добавлено: 13 дек 2010, 07:08
levantuev
Ну а если провайдер дал один логин на все номера? Как тогда?

Re: Как раздать несколько SIP номеров?

Добавлено: 13 дек 2010, 07:23
levantuev
Вот нарисовал примерный конфиг:

224606 - первый внешний номер телефона
225601 - второй внешний номер телефона

SIP.CONF:


[general]
;Входящие
context=office
register => login:passw@ip_server_voip

;Исходящие
[prov_sip_224606]
dtmfmode=rfc2833
type=peer
host=sip.xxx.ru
fromuser=ID
fromdomain=sip.xxx.ru:5060
secret=password
username=uservoip
canreinvite=no
context=local
disallow=all
allow=g729
allow=g723
allow=g723.1
allow=gsm
allow=ulaw
allow=alaw

[prov_sip_225601]
dtmfmode=rfc2833
type=peer
host=sip.xxx.ru
fromuser=ID
fromdomain=sip.xxx.ru:5060
secret=password
username=uservoip
canreinvite=no
context=local
disallow=all
allow=g729
allow=g723
allow=g723.1
allow=gsm
allow=ulaw
allow=alaw


EXTENNSIONS.CONF:

[office]
exten => 224606,1, Dial(SIP/224606,40)
exten => 224606,2, Hangup
exten => _8./224606,1,Dial(SIP/${EXTEN}@prov_sip_224606,40)

exten => 225601,1, Dial(SIP/225601,40)
exten => 225601,2, Hangup
exten => _8./225601,1,Dial(SIP/${EXTEN}@prov_sip_225601,40)

Re: Как раздать несколько SIP номеров?

Добавлено: 13 дек 2010, 08:01
levantuev
Вот в данном примере не понятно как организовать исходящие звонки по разным внешним номерам

Re: Как раздать несколько SIP номеров?

Добавлено: 13 дек 2010, 10:09
vlego
как я понял , у Вас только одна учетная запись у провайдера и внешние номера относятся именно к ней. При таком раскладе разделить исходящий траффик (как Вы выражаетесь "по номерам") - не получится и наличие нескольких внеш-х номеров тут не причем. Вы можете разделить исходящий траффик при наличии разных учетных записей у провайдера - это не сложно. лучше использовать для этого custom context. Что касаемо входящих вызовов, то при наличии у вас для * только одного внешнего IP адреса, вы получите все вызовы от провайдера (даже при наличиии нескольких транков) всегда в какой-то один, в зависимости от приоритета и разделить входяшие (как совершенно верно выше сказано) сможете только по DID (в Inbound Routes). внешние номера можно оформить на разные учетные записи - тогда все получается.(для каждой учетной записи - свой транк и если есть желание, то свой внешний номер)

Re: Как раздать несколько SIP номеров?

Добавлено: 13 дек 2010, 10:28
ded
vlego писал(а): Вы можете разделить исходящий траффик при наличии разных учетных записей у провайдера - это не сложно. лучше использовать для этого custom context.
Не обязательно. Для менеджмента через freePBX достаточно указывать соответствующие Oubond CID на экстеншнах.
Но у автора всё ручное. Поэтому

[office]
exten => 224606,1, Dial(SIP/224606,40) - при такой записи автор скоро будет всех одолевать криками "Почему у меня трансфер не работает?"
exten => 224606,2, Hangup
exten => _8./224606,1,Dial(SIP/${EXTEN}@prov_sip_224606,40)
- в общем, так не надо

А вот так надо

Код: Выделить всё

exten => _22560X,1, Dial(SIP/${EXTEN},40,tTr)
exten => _8X./225601,1,Set(CALLERID(num)=225601:1)
exten => _8X./225601,n,Dial(SIP/provider/${EXTEN:1},40,T)

exten => _8X./225606,1,Set(CALLERID(num)=225606)
exten => _8X./225606,n,Dial(SIP/provider/${EXTEN:1},40,T)

Re: Как раздать несколько SIP номеров?

Добавлено: 13 дек 2010, 10:47
vlego
ded, это понятно. А как быть с тариф-й разговоров ? В моем варианте это делает провайдер, а в Вашем это надо доделать самому.. Зачем прибавлять себе работу на ровном месте ? если есть разные организации, то каждый будет оплачивать вполне конкретный счет.

Re: Как раздать несколько SIP номеров?

Добавлено: 13 дек 2010, 10:52
ded
Про тарификацию исходящих автор не спрашивал.

Re: Как раздать несколько SIP номеров?

Добавлено: 13 дек 2010, 11:01
levantuev
vlego писал(а):ded, это понятно. А как быть с тариф-й разговоров ? В моем варианте это делает провайдер, а в Вашем это надо доделать самому.. Зачем прибавлять себе работу на ровном месте ? если есть разные организации, то каждый будет оплачивать вполне конкретный счет.
тарификация на радиусе разве не пойдет ?