Звездочка AGI, случайным образом возвращаясь 4 и не удаваясь выполнить PHP AGI

У меня есть Сценарий PHP, который я выполняю 2-3 раза в течение единственного времени жизни вызовов, если это будет входящим, то это выполнится однажды для очереди, однажды для запуска вызова и в прошлый раз для конца вызова. Для исходящего это пропускает этап очереди (очевидно).

Приблизительно 1 в каждых 1 000-2 000 вызовах последнее событие, конец вызова, ошибок, там, кажется, не шаблон вовремя или условия вызова.

В журналах это - то, что я становлюсь (обрезанным вниз шум)

-- Executing [h@sub-queue-bookings:1] Set("SIP/CL-000298d4", "CALLWHEN=END") in new stack
-- Executing [h@sub-queue-bookings:2] AGI("SIP/CL-000298d4", "presence_2.php") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/presence_2.php
AGI Tx >> agi_request: presence_2.php
AGI Tx >> agi_channel: SIP/CL-000298d4
AGI Tx >> agi_language: en_AU
AGI Tx >> agi_type: SIP
AGI Tx >> agi_uniqueid: 1405038747.11111
AGI Tx >> agi_version: 1.8.5.0
AGI Tx >> agi_callerid: anonymous
AGI Tx >> agi_calleridname: NZ anonymous
AGI Tx >> agi_callingpres: 0
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 0
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: anonymous
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: sub-queue-bookings
AGI Tx >> agi_extension: h
AGI Tx >> agi_priority: 2
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode: 
AGI Tx >> agi_threadid: 139985928873744
AGI Tx >> 
-- AGI Script presence_2.php completed, returning 4

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

extension.conf, который называет сценарий, похож на это:

;Hangup Event
exten => h,1,Set(CALLWHEN=END)
exten => h,n,AGI(presence_2.php) 

Я также включал следующее в Сценарий PHP, чтобы предотвратить его уничтожаемый (это, казалось, не имело значение):

/* Evil Process Block Fixing Code */
declare(ticks = 1);
pcntl_signal(SIGHUP, SIG_IGN);
pcntl_signal(SIGPIPE, SIG_IGN);
pcntl_signal(SIGILL, SIG_IGN);
pcntl_signal(SIGQUIT, SIG_IGN);
pcntl_signal(SIGABRT, SIG_IGN);
pcntl_signal(SIGSEGV, SIG_IGN);
pcntl_signal(SIGTERM, SIG_IGN);

Какой совет кто-то может дать мне для предотвращения этого? (Добавление чего-то к Сценарию PHP, проверьте x, перепишите extensions.conf, зарегистрируйте некоторую дополнительную информацию, и т.д.). Я справедливо озадачен, я погуглил вокруг и нашел несколько человек, испытывающих почти ту же самую вещь как я, но никакие решения за исключением "соглашения с ним".....


Это - то, на что похоже "регулярное" выполнение AGI:

 -- Executing [h@sub-queue-sales:1] Set("SIP/CL-00029e74", "CALLWHEN=END") in new stack
 -- Executing [h@sub-queue-sales:2] AGI("SIP/CL-00029e74", "presence_2.php") in new stack
 -- Launched AGI Script /var/lib/asterisk/agi-bin/presence_2.php
<SIP/CL-00029e74>AGI Tx >> agi_request: presence_2.php
<SIP/CL-00029e74>AGI Tx >> agi_channel: SIP/CL-00029e74
<SIP/CL-00029e74>AGI Tx >> agi_language: en_AU
<SIP/CL-00029e74>AGI Tx >> agi_type: SIP
<SIP/CL-00029e74>AGI Tx >> agi_uniqueid: 1405134386.171952
<SIP/CL-00029e74>AGI Tx >> agi_version: 1.8.5.0
<SIP/CL-00029e74>AGI Tx >> agi_callerid: 000000000
<SIP/CL-00029e74>AGI Tx >> agi_calleridname: 000000000
<SIP/CL-00029e74>AGI Tx >> agi_callingpres: 0
<SIP/CL-00029e74>AGI Tx >> agi_callingani2: 0
<SIP/CL-00029e74>AGI Tx >> agi_callington: 0
<SIP/CL-00029e74>AGI Tx >> agi_callingtns: 0
<SIP/CL-00029e74>AGI Tx >> agi_dnid: 000000000
<SIP/CL-00029e74>AGI Tx >> agi_rdnis: unknown
<SIP/CL-00029e74>AGI Tx >> agi_context: sub-queue-sales
<SIP/CL-00029e74>AGI Tx >> agi_extension: h
<SIP/CL-00029e74>AGI Tx >> agi_priority: 2
<SIP/CL-00029e74>AGI Tx >> agi_enhanced: 0.0
<SIP/CL-00029e74>AGI Tx >> agi_accountcode: 
<SIP/CL-00029e74>AGI Tx >> agi_threadid: 139987080693520
<SIP/CL-00029e74>AGI Tx >> 
<SIP/CL-00029e74>AGI Rx << GET VARIABLE UNIQUEID
<SIP/CL-00029e74>AGI Tx >> 200 result=1 (1405134386.171952)
<SIP/CL-00029e74>AGI Rx << GET VARIABLE UNIQUEID
<SIP/CL-00029e74>AGI Tx >> 200 result=1 (1405134386.171952)
<SIP/CL-00029e74>AGI Rx << VERBOSE "Started: 1405134386.171952" 1
 presence_2.php: Started: 1405134386.171952
........ lots of events and communcation with AGI ........
<SIP/CL-00029e74>AGI Tx >> 200 result=1
 -- <SIP/CL-00029e74>AGI Script presence_2.php completed, returning 0

Примечание: Я разделил всю информацию об идентификации от этих журналов NOTE2: Выполнение Звездочки 1.8.5

0
задан 14 July 2014 в 03:27
1 ответ

Код возврата AGI = код возврата используемого скрипта.

Так что проверьте в вашем скрипте presence_2.php if/when он имеет команду exit(4).

Для получения дополнительной информации do

1) stop asterisk

2) start asterisk via

asterisk -vvvvc

If so, вы увидите ошибку скрипта на вашей консоли.

2
ответ дан 4 December 2019 в 13:58

Теги

Похожие вопросы