Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

pjsip ограничение линий

0

Как правильно в pjsip ограничивать колчество линий на endpoint. Вроде как есть параметр endpoint/devicestatebusy_at, но почему то он не отрабатывает.

[main-template](!)
type=wizard
transport=transport-udp
accepts_auth = yes
accepts_registrations = yes
aor/qualify_frequency = 300
aor/max_contacts = 1
inbound_auth/auth_type = userpass
endpoint/disallow = all
endpoint/allow = alaw
endpoint/dtmf_mode = rfc4733
endpoint/deny = 0.0.0.0/0
endpoint/context = city_out
endpoint/direct_media = no
endpoint/device_state_busy_at = 1
endpoint/language = ru

[2222](main-template)
endpoint/callerid = <2222>
endpoint/permit = 10.0.30.140
inbound_auth/username = 2222
inbound_auth/password = password

При звонке вижу смотрю

 pjsip list endpoints

 Endpoint:  <Endpoint/CID.....................................>  <State.....>  <Channels.>
==========================================================================================

 Endpoint:  2222/2222                                      Busy          1 of 1

При втором звонке

pjsip list endpoints

 Endpoint:  <Endpoint/CID.....................................>  <State.....>  <Channels.>
==========================================================================================

 Endpoint:  2222/2222                                      Busy          2 of 1

Где то что то надо еще включить???

удалить закрыть спам изменить тег редактировать

спросил 2020-03-03 10:35:46 +0400

unknown Gravatar unknown
179 27 1 16

1 Ответ

1

Диалпланом. Используйте GROUP_COUNT

ссылка удалить спам редактировать

ответил 2020-03-03 12:24:35 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Диалпаном я так понимаю что то типа exten => 2222,n,ExecIf($["${DEVICESTATE(PJSIP/${EXTEN})}" = "BUSY"]?Hangup(17)) exten => 2222,n,ExecIf($["${DEVICESTATE(PJSIP/${EXTEN})}" = "INUSE"]?Hangup(17))

по GROUP_COUNT не могу до конца понять как из ендпоинта получить количество линий. Мне нужно каким то пользователям 1 каким то 2 каким то 5 линий.

unknown ( 2020-03-03 13:39:21 +0400 )редактировать

GROUP_COUNT позволяет считать количство по GROUP. Например, по имени ендпоинта вы можете посчитать текущие каналы в данной группе. Я тут писал диалплан. Вообще он много где есть(кто взял без изменений, кто написал свой). гуглится по group_count+asterisk. Вот например. https://asterisk-pbx.ru/wiki/asterisk/func/group_count

meral ( 2020-03-06 20:53:15 +0400 )редактировать

Тем же методос считается что угодно, количество исходящих с одной комнаты, количество людей в очереди, количество исходящих линий на GSM гейт и так далее. Собственно изза этого и не доведены до ума нативные функции подсчетов - мало кому нужны.

meral ( 2020-03-06 20:55:33 +0400 )редактировать

Спасибо я это все видел, я понимаю что можно в диалплане создавать группы с именем эндпоинта, но как в конфиге эндпоинта передать количество линий не понимаю. У меня один контекст для 100 разных эндпоинтов и у них разное количество линий у каждого.

unknown ( 2020-03-07 11:39:01 +0400 )редактировать

никак.Вы должно во входящем и исходящем диалплане прописать либо сделать hooks. А переменные для каждого эндпоинта можете вписать в конфиг,да.

meral ( 2020-03-09 02:12:55 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2020-03-03 10:35:46 +0400

Просмотрен: 1,001 раз

Обновлен: Mar 03 '20

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.