
Victor_sc120
17.12.2017
14:04:51
по другому диалплан не пременится

Roman
17.12.2017
14:05:48
Друзья помогите новичку пожалуйста организовать определение оператораи региона звонящего на атс с высвечиванием на оборудовании по статье: https://m.habrahabr.ru/post/337150/. Не до конца всё понятно. 1 пункт понятно (контект обработки звонков...), пишем в extensions.ael (но у парня на исходящие и называется outgoing_calls.ael, а сам скрипт в /etc/asterisk/scripts/operatorIF.sh). 2 пункт насколько я понял - создаём базу mysql как у парня эта база называется "uprovisioning", ну пофиг как. А далее как и наоборот на входящие поменять? Всем заранее ОГРОМНОЕ СПАСИБО!
Потом это всё дело прикрутить к freepbx 14 distro на centos7

SilverJoe
17.12.2017
14:08:52
в воскресенье?
"да ну нафиг" (с)

Google

Roman
17.12.2017
14:20:30
Извиняюсь конечно. Могу и до понедельника, вторника подождать. Помогите только ПОЖАЛУЙСТА! Я думаю Вам это легко. Заранее ОГРОМНОЕ СПАСИБО!

Alexander
17.12.2017
14:23:39
Есть разница между "дать конкретный совет" и "рассказать как сделать всю работу".
На конкретные вопросы будут конкретные советы. За предложение сделать работу, либо пошлют, либо попросят денег.
И это нормально

Roman
17.12.2017
14:24:16
Так в пределах разумного деньги есть

Victor_sc120
17.12.2017
16:13:32
это вам для входящих или исходящих звонков нужно ?

Марк
17.12.2017
16:27:16

Дмитрий
17.12.2017
16:27:52
и всё же... realtime не использует шаблоны!!! Ужас какой :(
кто-то может подтвердить или, о чудо, опровергнуть?

Ivan
17.12.2017
16:34:49
ужас был бы, если бы поддерживал

Марк
17.12.2017
16:35:23
Какие шаблоны? Вы о чем7

Дмитрий
17.12.2017
16:35:41
отчего же :) Я представляю как это было бы в реализации...
но в использовании очень даже было бы хорошо
не зря же null в базе данных придумывали
теперь придётся выводить абстракции шаблонов на уровень своих скриптов :(

Google

Ivan
17.12.2017
16:37:27
В базе можно использовать view

Дмитрий
17.12.2017
16:38:07
эти таблицы только на чтение используются?

Марк
17.12.2017
16:38:18
Что за шаблоны?

Ivan
17.12.2017
16:38:19
В postgres, например, можно делать триггер на вставку во view, и раскладывать по своим внутренним таблицам как угодно
Что за шаблоны?
[phone](!)
allow=!all,alaw
[100](phone)
...
[101](phone)
...

Марк
17.12.2017
16:39:40
А, эти. Тю.
Как не впадлу будет, допишу генератор sip.conf из базы.

Дмитрий
17.12.2017
16:42:06
пиши сразу чтобы по дельте работал.. а не удалял всё и вставлял :)
ну и.. pjsip,конечно

Марк
17.12.2017
16:42:53
У меня пока часть просто перезаписывает файло
Карочи, как в Эластике. Засейвился, перегенерировал конфиг.

Vadim
17.12.2017
16:44:33
А как узнать, что SIP телефонный аппарат активен ?

Дмитрий
17.12.2017
16:44:34
ну а я пока своё писать буду.. не ждать же

Vadim
17.12.2017
17:57:44
Я к тому, что выключится аппарат, например, с SIP аккаунтом 100, или сеть потеряет (механически провод выдеонут, например ), но при dial(sip/100) вызов будет идти в никуда и у вызывающего в трубке будет тишина, а как диагностировать проблему на данном аппарате, чтобы вызов послать по другому направлению?
А как узнать, что SIP телефонный аппарат активен ?

Victor_sc120
17.12.2017
17:59:35
проверить перед вызовом - chanisavail
Функция ChanIsAvail - проверяет статус линии и на выходе выдает варианты:
1-зарегестрирован, не звонит
2-зарегестрирован и используется (если call-limit = 1 не установлен)
3-зарегестрирован и используется (call-limit = 1)
5-не зарегестрирован
6-зарегестрирован и звонит
ChanIsAvail(SIP/100,as) и потом NoOp(Availchan is ${AVAILCHAN})
Зачем вы задаете вопросы ответы на которые есть в книге - Будущее Телефонии и гугле (на первой странице)
https://forum.asterisk.ru/viewtopic.php?f=5&t=2575

Google

Марк
17.12.2017
18:09:34
Прикольно %). Я не знал, что он для сипа тоже канает
Хотя вроде wiki.asterisk перечитал вдоль и поперек.

Дмитрий
17.12.2017
18:25:47
В продолжении темы realtime... А как работает outbound registration? Астериск что.. периодически сканирует таблицу на появление или изменение записей?
ну как endpoint я ещё понимаю.. там событийная обработка. А вот как эта registration?
Сам отвечу... а всё равно будет требоваться релоад...
https://issues.asterisk.org/jira/browse/ASTERISK-23807

Vadim
17.12.2017
18:30:16
Поэтому не нужно отсылать его к книге или гуглу. Дайте тот совет, который вы На практике сами проверили

Дмитрий
17.12.2017
18:32:39

Vadim
17.12.2017
18:33:44
Конечно, когда астериск посчитает этот аккаунт потерянным, то и chanisavail пригодится, но я говорю о той ситуации, когда проблема только возникла с аппаратом, например, на нём внезапно пропало питание или шнур Lan выдернут

Дмитрий
17.12.2017
18:34:50
тогда он точно ничего не отправляет. Всё зависит от необходимого времени реакции.
можно использовать qualify с должным периодом и AMI события, например..
если нужно узнать раньше, чем диалплан..
у меня, например, все события по онлайн/офлайн в базу складываются.. чтобы после узнать в каком он состоянии был

Марк
17.12.2017
18:36:41
А я с этим онлайн/оффлайн прилично наебался через АМИ.

SilverJoe
17.12.2017
18:37:08

Марк
17.12.2017
18:38:06
В АМи этот блядский агентлогин работает постоянно. Как пинг. В этоге приходится чекать, что он уже логин

Vadim
17.12.2017
18:39:27
Точно ... Нужно hint'ы попробовать... я как-то давно эксперементировал...но не нужно было... сейчас повспоминаю... и про qualify подумать нужно. .

Дмитрий
17.12.2017
19:01:58

Saint
17.12.2017
20:05:50
Хоть порт указываю и пробросил его, не регистрируются никак и не пойму че за фигня

Roman
17.12.2017
22:45:24
Написать в extention.ael ? А как к этому ещё прикрутить определение с городских региона и показом данной инфы на ip телефонах?

Google

Victor_sc120
18.12.2017
06:08:26
не hint надо крутить, а регистрацию скручивать до 120 секунд = тогда и о прапаже телефона сразу узнаете а не спустя полчаса

Rm
18.12.2017
07:24:32
Такой диаплан не сложно создать?

ShadoWalkeR
18.12.2017
07:25:29
Несложно

Андрей
18.12.2017
07:25:33
freepbx ?

Rm
18.12.2017
07:25:46

Андрей
18.12.2017
07:26:12
через Time Conditions

Rm
18.12.2017
07:26:26

Андрей
18.12.2017
07:26:50
А в чем вопрос то ) Walker дело говорит

Saint
18.12.2017
07:30:03
цепочку нескольких Time Conditions делаете и будет счастье

Rm
18.12.2017
08:16:03
я так полагаю в Time Conditions будет 4 варианта?
(Отдел 1 (день) 06:50/22:50), (Отдел 2 (ночь) 23:10/06:50), (Отдел 1 и Отдел 2 (утро) 06:50/07:10), (Отдел 1 и Отдел 2 (вечер) 22:50/23:10)


Сергей
18.12.2017
09:28:47
Здравствуйте. Дано: gsm шлюз yeastar tg200. слот1 — мтс. слот2 — велком. (Беларусь)
1.звонок с велком на мтс. на мобильном аппарате звонок сбросил (не поднимая трубку на софтофоне). софтофон продолжает звонить. чтобы прервать звонок нажал отбой на софтофоне.
такая же проблема если звонить с мтс на велком.
2. звонок с мтс на мтс. на мобильном сбросил звонок. софтофон перестал звонить. все норм.
если звонить с велкома на велком то проблемы нет.
3. если звонить с городского номера на мтс то проблем нет. если звонить с городского номера на велком то проблема.
позвонил в саппорт еастара. собрал лог gsm debug. саппорт говорит что проблема на стороне оператора, от него не прилетает сообщение NO CARRIER.
Может кто-нибудь сталкивался с подобной проблемой?


Saint
18.12.2017
10:55:24
Добрый день всем
я все продолжаю биться с уведомлениями о занятости вызываемого абонента)
скрипт чуть доработал по подсказкам товарищей
сейчас в логе при звонке занятому абоненту вижу следующее
-- Executing [5950@NS-Russia:1] Macro("SIP/1102-0002807d", "dial-one-predial-hook") in new stack
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
-- Executing [s@macro-dial-one-predial-hook:1] NoOp("SIP/1102-0002807d", "HINT STATUS - ") in new stack
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
-- Executing [s@macro-dial-one-predial-hook:2] ExecIf("SIP/1102-0002807d", "0?Playback(/var/lib/asterisk/sounds/en/custom/orman)") in new stack
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
-- Executing [s@macro-dial-one-predial-hook:3] ExecIf("SIP/1102-0002807d", "0?Set(D_OPTIONS=Ttm)") in new stack
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
-- Executing [s@macro-dial-one-predial-hook:4] ExecIf("SIP/1102-0002807d", "0?Playback(/var/lib/asterisk/sounds/en/custom/orman)") in new stack
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
-- Executing [s@macro-dial-one-predial-hook:5] ExecIf("SIP/1102-0002807d", "0?Set(D_OPTIONS=Ttm)") in new stack
[2017-12-18 13:54:20] WARNING[416][C-000117eb]: func_extstate.c:106 extstate_read: EXTENSION_STATE requires an extension
-- Executing [s@macro-dial-one-predial-hook:6] MacroExit("SIP/1102-0002807d", "") in new stack


Mike
18.12.2017
10:59:04

Saint
18.12.2017
11:03:00
я так понимаю ему в макросе не нравится это - {EXTENSION_STATE(${DEXTEN}?

Google

Mike
18.12.2017
11:03:46
если там написанно именно так, то я уже вижу ошибку )

Алексей
18.12.2017
11:04:12
Закрывающую

Mike
18.12.2017
11:04:40
${EXTENSION_STATE(${DEXTEN})}
$ ) }

Алексей
18.12.2017
11:04:52
Ага

Saint
18.12.2017
11:05:08
ну вся запись с extensions_custom.conf теперь такая
[from-internal-custom]
exten => _X.,1,macro(dial-one-predial-hook)
[macro-dial-one-predial-hook]
exten => s,1,Noop(HINT STATUS - ${EXTENSION_STATE(${DEXTEN})})
exten => s,n,ExecIf($["${EXTENSION_STATE(${DEXTEN})}" = "INUSE"]?Playback(/var/lib/asterisk/sounds/en/custom/orman))
exten => s,n,ExecIf($["${EXTENSION_STATE(${DEXTEN})}" = "INUSE"]?Set(D_OPTIONS=Ttm))
exten => s,n,ExecIf($["${EXTENSION_STATE(${DEXTEN})}" = "RINGINUSE"]?Playback(/var/lib/asterisk/sounds/en/custom/orman))
exten => s,n,ExecIf($["${EXTENSION_STATE(${DEXTEN})}" = "RINGINUSE"]?Set(D_OPTIONS=Ttm))
exten => s,n,MacroExit
в логах то вижу что вызывает, но запись так и не играет блин

SilverJoe
18.12.2017
11:05:56
| DEXTEN
это что такое?

Saint
18.12.2017
11:06:53
я так понимаю переменная

Mike
18.12.2017
11:07:00
таинственная переменная, задаваемая вне макроса )
перед exten => s,n,MacroExit добавьте exten => s,n,Dumpchan()

Saint
18.12.2017
11:07:55
почему вне? в тут разве не оно - exten => s,1,Noop(HINT STATUS - ${EXTENSION_STATE(${DEXTEN})})

Mike
18.12.2017
11:07:56
и в дампе перепроверьте, правильные ли там значения
Noop ничего не делает, значение не присваивается

Saint
18.12.2017
11:12:50

Roman
18.12.2017
11:14:10

Mike
18.12.2017
11:14:39
вы в списке переменную DEXTEN видите?