@asterisk_ru

Страница 851 из 905
Yuriy
25.09.2018
09:02:34
"и чё?" (с)
Ну наверное тут я вас отправлю учить матчасть

Sergey
25.09.2018
09:04:24
Мы вариант с проверкой номера звонящего делали, то ли через HTTP обращение (к внешней системе), или через обращение в локальной БД MySQL)

Ну наверное тут я вас отправлю учить матчасть
Засчитывается как "нет внятного ответа"

Yuriy
25.09.2018
09:06:26
Засчитывается как "нет внятного ответа"
Да пофиг. Если вы не в курсе как работает постоянное доергание shell из астериска и почему открывать и закрывать файл на каждый звонок -плохая идея и не можете погуглить об этом ничего 0 то это ваша проблема а не моя

Google
Yuriy
25.09.2018
09:06:42
Я гуглить за вас и кидать в вас цитатами не буду. Мне лень

Sergey
25.09.2018
09:07:18
Что произойдет с файловой системой при нагрузке в 100 звонков в день?

Sailor
25.09.2018
09:11:56
Подскажите может есть уже готовое решение. Набирать один и тот же номер, если взяли трубку - переводить звонок на екстеншен.

Gaisin
25.09.2018
09:13:43
100 звонков в день, если растянуто то ни чего

Sergey
25.09.2018
09:14:05
100 звонков в день, если растянуто то ни чего
Таки нагрузку то не озвучили...

да
А письменное согласие абонента имеется? )))

Gaisin
25.09.2018
09:16:38
Вам нагрузку в чем озвучить?

И что делается в 1 вызове, запросы к бд или чтение чего то

Sergey
25.09.2018
09:18:07
Вам нагрузку в чем озвучить?
В количестве вызовов в день, плюс было бы неплохо узнать пиковую нагрузку, плюс с какой разницей во времени поступают вызовы (минимальный интервал)

Gaisin
25.09.2018
09:21:48
Ну если система высоконагруженная, то лучше измерять в cps

Google
Gaisin
25.09.2018
09:22:21
А там исходим от операций которые выполняются в диалплане

Sergey
25.09.2018
09:23:29
Ну если система высоконагруженная, то лучше измерять в cps
Для кого-то и 500 вызовов в день - это высоконагруженная система

Gaisin
25.09.2018
09:23:44
Ну хз)

Роман
25.09.2018
09:25:36
Gaisin
25.09.2018
09:25:42
Тут важно не количество вызовов, а частота

Sergey
25.09.2018
09:28:34
если только на калькуляторе
даже тут могут быть нюансы - какой калькулятор? какая батарейка в нем установлена? и т.п. и т.д.

Тут важно не количество вызовов, а частота
и эту частоту никто не озвучил...

Yuriy
25.09.2018
09:29:25
В количестве вызовов в день, плюс было бы неплохо узнать пиковую нагрузку, плюс с какой разницей во времени поступают вызовы (минимальный интервал)
Чтобы открыть файл - файловой системе необходимо найти до него путь. Затем создать дескриптор файла. Затем зайти в файл и распарсить текст Затем закрыть файли и удалить дескриптор файла При частых обращениях к файлу операция открытия и закрытия дескриптора дает оверхед Создание дескриптора тоже ищет память вкуче, резирвируя ее - что тоже дает оверхэд Астеирск не умеет шарить десткриптор файла через диалплан соотвесвенно данная операция поторяется на каждый вызов Касаемо вывзова shell вызов shell Из конфига так же дает большую нагрузку на систему ибо либа которая используется для этого - сильно грузит систему Все это в купе дает сильные нагрузки на систему пи ее активном использовании и гораздо целесообразнее использовать cache Ну и - жаль что вас этому не учили в университете или в поисковике гугл

Gaisin
25.09.2018
09:32:13
и эту частоту никто не озвучил...
Я незнаю какая у вас система)

Sergey
25.09.2018
09:32:27
Gaisin
25.09.2018
09:32:43
Ну тем более

Gaisin
25.09.2018
09:33:53
А понял

Я бы посоветовал, asterisk + lua + tarantool или redis)

Sergey
25.09.2018
09:34:45
Если у него астериск без MySQL (и человек задает такие вопросы) - то вряд ли там будет 1000 cps

Kirill
25.09.2018
09:36:57
Спасибо всем) да, у меня не 1000 cps, поэтому и думал сделать простой способ через файл. Но судя по всему проще через asterdb реализовать

Kirill
25.09.2018
09:37:34
И это все нужно всего на одну неделю, после это все выкинут

Sergey
25.09.2018
09:37:42
Даже если не осилишь - тоже отпишись, что не осилил

Google
Sailor
25.09.2018
09:41:08
Так все же, кто может подскажет может есть уже готовое решение. Набирать один и тот же номер, если взяли трубку - переводить звонок на екстеншен.

Sergey
25.09.2018
09:41:55
владеешь башем - почему бы и нет (для временного решения) знаешь как написать свою функцию в астериске для обращения к MySQL - почему бы и нет знаешь redis - круть

Ruslan
25.09.2018
09:42:27
Всем привет. А подскажите, можно ли в диалплане указать чтение из файла? Что хочу получить: есть asterisk без MySQL, нужно сделать проверку входящего номера, а список номеров загнать в текстовый файл. Про свою внутреннюю БД знаю, но думал сделать через файл
мож тебе поможет, проверку номеров по "базе" делал так, same => n,Set(CORP=${SHELL(/etc/asterisk/check_corp.php 8${EXTEN:1})}) <?php $corp_nums=array( "89100XXXXXX", "89100XXXXXX" ); $number=$argv[1]; if (in_array($number, $corp_nums)) { echo "1"; } else { echo "0"; } ?>

Kirill
25.09.2018
09:43:21
На тему "проще" - проще будет тем инструментом, которым хорошо владеешь
Конечно, но если ранее этого не делал - то задаёшь вопрос в чатике, гугле, а после делаешь. Кто-то подскажет в какую сторону лучше смотреть

Sergey
25.09.2018
09:44:08
Конечно, но если ранее этого не делал - то задаёшь вопрос в чатике, гугле, а после делаешь. Кто-то подскажет в какую сторону лучше смотреть
Ага, и через неделю, когда эту реализацию надо будет выбрасывать уже, то можно и приступить к работе )))

Sailor
25.09.2018
09:44:40
Через кол-файлы?
Можно и так. Можешь подсказать по фрипбкс. Channel: ( В каком формате тут указать я не могу понять, у меня сип транки) Callerid: 100 MaxRetries: 5 RetryTime: 300 WaitTime: 45 Context: from-internal ( как узнать имя контекта) Extension: 107 Priority: 1

Sergey
25.09.2018
09:46:32
Ну каждый работает как может )))))
С таким подходом не каждый будет работать (в смысле будет не нужен на работе, т.к. ничего не сделает за отведенное время) На баше написал, реализовал за час-два, а оставшееся время сидишь и изучаешь MySQL/redis/etc )))

Ruslan
25.09.2018
09:48:51
Так все же, кто может подскажет может есть уже готовое решение. Набирать один и тот же номер, если взяли трубку - переводить звонок на екстеншен.
передавать номера на вход генератора колл файлов, чекать статус успешных дозвонов, больше не передавать, на вскидку самое простое это колл файлы для дозвона и соединения, проверка тут подумать надо, обработав исключительные ситуации, а так вариантов много

Sailor
25.09.2018
09:49:31
Кто то может с простой фигней в виде колл файла? Не могу понять как заполнить 3 строки

Channel: ( В каком формате тут указать я не могу понять, у меня сип транки) Callerid: 100 MaxRetries: 5 RetryTime: 300 WaitTime: 45 Context: from-internal ( как узнать имя контекта) Extension: 107 Priority: 1

Sailor
25.09.2018
09:50:40
ну так это вообще элементарно :) скрипт в крон и все.
то понятно, я сам колл файл не знаю как правильно заполнить, а именно указать Channel, context

Sergey
25.09.2018
09:51:48
Можно и так. Можешь подсказать по фрипбкс. Channel: ( В каком формате тут указать я не могу понять, у меня сип транки) Callerid: 100 MaxRetries: 5 RetryTime: 300 WaitTime: 45 Context: from-internal ( как узнать имя контекта) Extension: 107 Priority: 1
Спасибо, что разрешил подсказать по фрипбкс (точка в конце предложения - это повествовательное предложение) Channel: SIP/ИмяТранка/89261112233

Sailor
25.09.2018
09:52:40


Channel: SIP/GB_TEST/89261112233

Google
Ruslan
25.09.2018
09:53:24
то понятно, я сам колл файл не знаю как правильно заполнить, а именно указать Channel, context
вот тебе пример рабочий, тока комментарии удали // <?php $outgoing = "Channel: SIP/mtt/8900960XXXX\r\n". // кому звоним "Callerid: 100\r\n". // опционально "MaxRetries: 5\r\n". "RetryTime: 300\r\n". "WaitTime: 45\r\n". "Context: outgoing_context\r\n". // контекст внутреннего номера "Extension: 777\r\n". // внутренний на астере "Priority: 1\r\n" ; $file = fopen('/var/spool/asterisk/outgoing/'.md5(time().rand(0,10000)),"w"); fwrite($file, $outgoing); fclose($file); ?>

Sergey
25.09.2018
09:53:30
Вот так?
попробуй и отпишись )))

Dmitriy
25.09.2018
10:16:53
на всех нормальных заборах пишут что создание call-файла сразу в /outgoing/ чревато глюками и поясняют почему. ищите

Ruslan
25.09.2018
10:18:28
на всех нормальных заборах пишут что создание call-файла сразу в /outgoing/ чревато глюками и поясняют почему. ищите
знаю, но так работает, но костылить с перемещение и сменой даты лень, если так работает. Еще меняь владельца, если астер не от рута и пр мелочи.

Sailor
25.09.2018
10:25:46
знаю, но так работает, но костылить с перемещение и сменой даты лень, если так работает. Еще меняь владельца, если астер не от рута и пр мелочи.
<?php $outgoing = "Channel: Local/021888629@from-internal\r\n". // ком�^� звоним "Callerid: 777\r\n". // оп�^�ионал�^�но "MaxRetries: 2\r\n". "RetryTime: 30\r\n". "WaitTime: 30\r\n". "Context: from-trunk-sip-18172600\r\n". // кон�^�ек�^��^� вн�^��^��^�еннего номе�^�а "Extension: 177\r\n". // вн�^��^��^�енний на а�^��^�е�^�е "Priority: 1\r\n" ; $file = fopen('/var/spool/asterisk/outgoing/'.md5(time().rand(0,10000)),"w"); fwrite($file, $outgoing); fclose($file); ?>

Так работает

но, не переводит звонок на внутреннего

может быть изза того что ринггруппа?

Admin
ERROR: S client not available

Ruslan
25.09.2018
10:27:22
может быть изза того что ринггруппа?
хз как там в фпбкс, но предполагаю что ринг группе надо номер прикрутить.

Sailor
25.09.2018
10:27:50
там с ринг все ок, она рабочая

Ruslan
25.09.2018
10:28:40
там с ринг все ок, она рабочая
ринг группа это абстракция над астером, проверь на другом внутреннем номере сипе, если пашет, то выше я писал уже.

Sailor
25.09.2018
10:29:08
не в этом суть, решил проверить звонком не с астера в астер, а на мобильный свой, снимаю трубку - 3 секунды и завершается звонок

Sailor
25.09.2018
10:43:20
- -- SIP/13023199448-00022a88 answered Local/02380936904549@from-internal-00000668;2 -- Executing [177@from-trunk-sip-18172600613:1] Set("Local/02380936904549@from-internal-00000668;1", "GROUP()=OUT_6") in new stack -- Executing [177@from-trunk-sip-18172600613:2] Goto("Local/02380936904549@from-internal-00000668;1", "from-trunk,177,1") in new stack -- Goto (from-trunk,177,1) -- Executing [177@from-trunk:1] Set("Local/02380936904549@from-internal-00000668;1", "DB(API/HOST)=52.41.36.160") in new stack -- Executing [177@from-trunk:2] Set("Local/02380936904549@from-internal-00000668;1", "DB(API/KEY)=pgHcYuME4sUHrLKhcjcR") in new stack -- Executing [177@from-trunk:3] Set("Local/02380936904549@from-internal-00000668;1", "CURLOPT(httptimeout)=7") in new stack -- Executing [h@macro-dialout-trunk:1] Macro("Local/02380936904549@from-internal-00000668;2", "hangupcall,") in new stack -- Executing [s@macro-hangupcall:1] GotoIf("Local/02380936904549@from-internal-00000668;2", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [s@macro-hangupcall:3] ExecIf("Local/02380936904549@from-internal-00000668;2", "0?Set(CDR(recordingfile)=)") in new stack -- Executing [s@macro-hangupcall:4] NoOp("Local/02380936904549@from-internal-00000668;2", "{ -- "status": 200, -- "data": { -- "message": "Success", -- "a": "hangup", -- "hash": "a13e51d1405d469704b8357c10fec61a" -- } -- }") in new stack -- Executing [s@macro-hangupcall:5] Hangup("Local/02380936904549@from-internal-00000668;2", "") in new stack == Spawn extension (macro-hangupcall, s, 5) exited non-zero on 'Local/02380936904549@from-internal-00000668;2' in macro 'hangupcall' == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on 'Local/02380936904549@from-internal-00000668;2' == Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on 'Local/02380936904549@from-internal-00000668;2' in macro 'dialout-trunk' == Spawn extension (from-internal, 02380936904549, 6) exited non-zero on 'Local/02380936904549@from-internal-00000668;2' -- Executing [177@from-trunk:4] Set("SIP/13023199448-00022a88", "CURL_RESULT={ -- "status": 200, -- "data": { -- "name": "", -- "cid": "777", -- "hash": "a63e26ac2487ac3db2c0db2776314ab7", -- "a": "client-start" -- } -- }") in new stack -- Executing [177@from-trunk:5] Set("SIP/13023199448-00022a88", "CALLERID(name)=") in new stack -- Executing [177@from-trunk:6] Set("SIP/13023199448-00022a88", "GLOBAL(API_HASH)="a63e26ac2487ac3db2c0db2776314ab7"") in new stack == Setting global variable 'API_HASH' to '"a63e26ac2487ac3db2c0db2776314ab7"' -- Executing [177@from-trunk:7] NoOp("SIP/13023199448-00022a88", ""a63e26ac2487ac3db2c0db2776314ab7"") in new stack -- Auto fallthrough, channel 'SIP/13023199448-00022a88' status is 'UNKNOWN' -- Executing [h@from-trunk:1] Macro("SIP/13023199448-00022a88", "hangupcall,") in new stack -- Executing [s@macro-hangupcall:1] GotoIf("SIP/13023199448-00022a88", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [s@macro-hangupcall:3] ExecIf("SIP/13023199448-00022a88", "0?Set(CDR(recordingfile)=)") in new stack -- Executing [s@macro-hangupcall:4] NoOp("SIP/13023199448-00022a88", "{ -- "status": 200, -- "data": { -- "message": "Success", -- "a": "hangup", -- "hash": "a63e26ac2487ac3db2c0db2776314ab7" -- } -- }") in new stack -- Executing [s@macro-hangupcall:5] Hangup("SIP/13023199448-00022a88", "") in new stack == Spawn extension (macro-hangupcall, s, 5) exited non-zero on 'SIP/13023199448-00022a88' in macro 'hangupcall' == Spawn extension (from-trunk, h, 1) exited non-zero on 'SIP/13023199448-00022a88' == MixMonitor close filestream (mixed) == End MixMonitor Recording Local/02380936904549@from-internal-00000668;2

Scheduling destruction of SIP dialog '52ce80a2603b43a35fd9fdfc61bbdb46@sip.riccontel.com' in 32000 ms (Method: INVITE) set_destination: Parsing <sip:380936904549@87.118.127.249:5060> for address/port to send to set_destination: set destination to 87.118.127.249:5060 Reliably Transmitting (NAT) to 87.118.127.249:5060: BYE sip:380936904549@87.118.127.249:5060 SIP/2.0 Via: SIP/2.0/UDP 54.191.199.158:5060;branch=z9hG4bK2e0797cc;rport Max-Forwards: 70 From: <sip:14164681@sip.riccontel.com>;tag=as7db3332e To: <sip:380936904549@sip.riccontel.com>;tag=as562bfec4 Call-ID: 52ce80a2603b43a35fd9fdfc61bbdb46@sip.riccontel.com CSeq: 104 BYE User-Agent: dlink 12-3892-6657-1.3.3.198-ON201LW Authorization: Digest username="14164681", realm="asterisk", algorithm=MD5, uri="sip:380936904549@87.118.127.249:5060", nonce="05e8d5ce", response="c453948b3e36d3a4bfc683ede6c57013" X-Asterisk-HangupCause: Normal Clearing X-Asterisk-HangupCauseCode: 16 Content-Length: 0 --- [2018-09-25 10:40:51] NOTICE[25583]: pbx_spool.c:427 attempt_thread: Call completed to Local/02380936904549@from-internal

Google
Sailor
25.09.2018
10:46:51
не работает Chanel /sip

* не звонит

в репорте записи не появляются

Sergey
25.09.2018
10:47:56
Так не звонит или записи не появляются? Это, как говорят у них в Одессе, две большие разницы )))

Yuriy
25.09.2018
10:49:19
Собственно у вас сам астеирск хенгапает звонок Executing [h@macro-dialout-trunk:1] Macro("Local/02380936904549@from-internal-00000668;2", "hangupcall,") in new stack -- Executing [s@macro-hangupcall:1] GotoIf("Local/02380936904549@from-internal-00000668;2", "1?theend") in new stack -- Goto (macro-hangupcall,s,3)

Даже не начав вызов

Ruslan
25.09.2018
10:52:39
не работает Chanel /sip
очень тяжело так, сделай кастомный контекст, для проверки или пихни внутрь на сип или очеред, на более традиционные сущности в астере, имхо быстрее астер с нуля настроить второй без фпбкс.

Sailor
25.09.2018
10:53:29
я разобрался в общем

заработало

всем спасибо

Sergey
25.09.2018
10:55:07
я разобрался в общем
Народ жаждет подробностей!

Роман
25.09.2018
10:56:53
Народ жаждет подробностей!
Да какие там подробности, накосячил с контекстами или callerid

Sailor
25.09.2018
10:57:05
Контекстом

Я просто не телефонийщик , но иногда задачи бывают...

Artem
25.09.2018
10:58:01
подскажите днищу по какому протоколу голос в астериске ходит ?

l4 udp, а выше уровень кто ?

Sergey
25.09.2018
11:00:04
Ruslan
25.09.2018
11:00:33
l4 udp, а выше уровень кто ?
выше по стеку tcpip ниче нет. по оси это для теоретиков

Artem
25.09.2018
11:01:14
по rtp ?

где может быть собака зарыта, звоню на сотовые - все ок голос в 2 стороны, звоню на город я их слышу а они меня нет

Страница 851 из 905