ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Двойная запись в базу данных

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Двойная запись в базу данных

Сообщение Kroteg » 24 апр 2018, 11:52

Возможно повторно нажали применить во FreePBX и теперь на номер позвонить невозможно - сразу идет обрыв
[Показать] Спойлер: листинг вызова
-- Executing [7006@526906:1] Set("SIP/475-0000da0e", "__RINGTIMER=15") in new stack
-- Executing [7006@526906:2] Macro("SIP/475-0000da0e", "exten-vm,novm,7006,1,0,0") in new stack
-- Executing [s@macro-exten-vm:1] Macro("SIP/475-0000da0e", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/475-0000da0e", "TOUCH_MONITOR=1524555781.139091") in new stack
-- Executing [s@macro-user-callerid:2] Set("SIP/475-0000da0e", "AMPUSER=475") in new stack
-- Executing [s@macro-user-callerid:3] GotoIf("SIP/475-0000da0e", "0?report") in new stack
-- Executing [s@macro-user-callerid:4] ExecIf("SIP/475-0000da0e", "1?Set(REALCALLERIDNUM=475)") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/475-0000da0e", "AMPUSER=475") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/475-0000da0e", "0?limit") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/475-0000da0e", "AMPUSERCIDNAME=TEST Intelcom") in new stack
-- Executing [s@macro-user-callerid:8] GotoIf("SIP/475-0000da0e", "0?report") in new stack
-- Executing [s@macro-user-callerid:9] Set("SIP/475-0000da0e", "AMPUSERCID=475") in new stack
-- Executing [s@macro-user-callerid:10] Set("SIP/475-0000da0e", "__DIAL_OPTIONS=Ttr") in new stack
-- Executing [s@macro-user-callerid:11] Set("SIP/475-0000da0e", "CALLERID(all)="TEST Intelcom" <475>") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("SIP/475-0000da0e", "0?limit") in new stack
-- Executing [s@macro-user-callerid:13] ExecIf("SIP/475-0000da0e", "0?Set(GROUP(concurrency_limit)=475)") in new stack
-- Executing [s@macro-user-callerid:14] GotoIf("SIP/475-0000da0e", "0?continue") in new stack
-- Executing [s@macro-user-callerid:15] Set("SIP/475-0000da0e", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:16] GotoIf("SIP/475-0000da0e", "1?continue") in new stack
-- Goto (macro-user-callerid,s,27)
-- Executing [s@macro-user-callerid:27] Set("SIP/475-0000da0e", "CALLERID(number)=475") in new stack
-- Executing [s@macro-user-callerid:28] Set("SIP/475-0000da0e", "CALLERID(name)=TEST Intelcom") in new stack
-- Executing [s@macro-user-callerid:29] Set("SIP/475-0000da0e", "CDR(cnum)=475") in new stack
-- Executing [s@macro-user-callerid:30] Set("SIP/475-0000da0e", "CDR(cnam)=TEST Intelcom") in new stack
-- Executing [s@macro-user-callerid:31] Set("SIP/475-0000da0e", "CHANNEL(language)=en") in new stack
-- Executing [s@macro-exten-vm:2] Set("SIP/475-0000da0e", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("SIP/475-0000da0e", "__EXTTOCALL=7006") in new stack
-- Executing [s@macro-exten-vm:4] Set("SIP/475-0000da0e", "__PICKUPMARK=7006") in new stack
-- Executing [s@macro-exten-vm:5] Set("SIP/475-0000da0e", "RT=15") in new stack
-- Executing [s@macro-exten-vm:6] Gosub("SIP/475-0000da0e", "sub-record-check,s,1(exten,7006,)") in new stack
-- Executing [s@sub-record-check:1] Set("SIP/475-0000da0e", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:2] GotoIf("SIP/475-0000da0e", "1?check") in new stack
-- Goto (sub-record-check,s,7)
-- Executing [s@sub-record-check:7] Set("SIP/475-0000da0e", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:8] GotoIf("SIP/475-0000da0e", "1?next") in new stack
-- Goto (sub-record-check,s,11)
-- Executing [s@sub-record-check:11] ExecIf("SIP/475-0000da0e", "0?Return()") in new stack
-- Executing [s@sub-record-check:12] ExecIf("SIP/475-0000da0e", "0?Set(__REC_POLICY_MODE=)") in new stack
-- Executing [s@sub-record-check:13] GotoIf("SIP/475-0000da0e", "0?exten,1") in new stack
-- Executing [s@sub-record-check:14] Set("SIP/475-0000da0e", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:15] Set("SIP/475-0000da0e", "NOW=1524555781") in new stack
-- Executing [s@sub-record-check:16] Set("SIP/475-0000da0e", "__DAY=24") in new stack
-- Executing [s@sub-record-check:17] Set("SIP/475-0000da0e", "__MONTH=04") in new stack
-- Executing [s@sub-record-check:18] Set("SIP/475-0000da0e", "__YEAR=2018") in new stack
-- Executing [s@sub-record-check:19] Set("SIP/475-0000da0e", "__TIMESTR=20180424-124301") in new stack
-- Executing [s@sub-record-check:20] Set("SIP/475-0000da0e", "__FROMEXTEN=475") in new stack
-- Executing [s@sub-record-check:21] Set("SIP/475-0000da0e", "__CALLFILENAME=exten-7006-475-20180424-124301-1524555781.139091") in new stack
-- Executing [s@sub-record-check:22] Goto("SIP/475-0000da0e", "exten,1") in new stack
-- Goto (sub-record-check,exten,1)
-- Executing [exten@sub-record-check:1] GotoIf("SIP/475-0000da0e", "0?callee") in new stack
-- Executing [exten@sub-record-check:2] Set("SIP/475-0000da0e", "__REC_POLICY_MODE=NOT_INUSE") in new stack
-- Executing [exten@sub-record-check:3] GotoIf("SIP/475-0000da0e", "0?caller") in new stack
-- Executing [exten@sub-record-check:4] GotoIf("SIP/475-0000da0e", "1?callee") in new stack
-- Goto (sub-record-check,exten,8)
-- Executing [exten@sub-record-check:8] GosubIf("SIP/475-0000da0e", "0?record,1(exten,7006,475)") in new stack
-- Executing [exten@sub-record-check:9] Return("SIP/475-0000da0e", "") in new stack
-- Executing [s@macro-exten-vm:7] Macro("SIP/475-0000da0e", "dial-one,15,Ttr,7006") in new stack
-- Executing [s@macro-dial-one:1] Set("SIP/475-0000da0e", "DEXTEN=7006") in new stack
-- Executing [s@macro-dial-one:2] Set("SIP/475-0000da0e", "DIALSTATUS_CW=") in new stack
-- Executing [s@macro-dial-one:3] GosubIf("SIP/475-0000da0e", "0?screen,1()") in new stack
-- Executing [s@macro-dial-one:4] GosubIf("SIP/475-0000da0e", "0?cf,1()") in new stack
-- Executing [s@macro-dial-one:5] GotoIf("SIP/475-0000da0e", "1?skip1") in new stack
-- Goto (macro-dial-one,s,8)
-- Executing [s@macro-dial-one:8] GotoIf("SIP/475-0000da0e", "0?nodial") in new stack
-- Executing [s@macro-dial-one:9] GotoIf("SIP/475-0000da0e", "0?continue") in new stack
-- Executing [s@macro-dial-one:10] Set("SIP/475-0000da0e", "EXTHASCW=") in new stack
-- Executing [s@macro-dial-one:11] GotoIf("SIP/475-0000da0e", "1?next1:cwinusebusy") in new stack
-- Goto (macro-dial-one,s,12)
-- Executing [s@macro-dial-one:12] GotoIf("SIP/475-0000da0e", "0?docfu:skip3") in new stack
-- Goto (macro-dial-one,s,16)
-- Executing [s@macro-dial-one:16] GotoIf("SIP/475-0000da0e", "1?next2:continue") in new stack
-- Goto (macro-dial-one,s,17)
-- Executing [s@macro-dial-one:17] GotoIf("SIP/475-0000da0e", "1?continue") in new stack
-- Goto (macro-dial-one,s,25)
-- Executing [s@macro-dial-one:25] GotoIf("SIP/475-0000da0e", "0?nodial") in new stack
-- Executing [s@macro-dial-one:26] GosubIf("SIP/475-0000da0e", "1?dstring,1():dlocal,1()") in new stack
-- Executing [dstring@macro-dial-one:1] Set("SIP/475-0000da0e", "DSTRING=") in new stack
-- Executing [dstring@macro-dial-one:2] Set("SIP/475-0000da0e", "DEVICES=7006") in new stack
-- Executing [dstring@macro-dial-one:3] ExecIf("SIP/475-0000da0e", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:4] ExecIf("SIP/475-0000da0e", "0?Set(DEVICES=006)") in new stack
-- Executing [dstring@macro-dial-one:5] Set("SIP/475-0000da0e", "LOOPCNT=1") in new stack
-- Executing [dstring@macro-dial-one:6] Set("SIP/475-0000da0e", "ITER=1") in new stack
-- Executing [dstring@macro-dial-one:7] Set("SIP/475-0000da0e", "THISDIAL=NOT_INUSE") in new stack
-- Executing [dstring@macro-dial-one:8] GosubIf("SIP/475-0000da0e", "1?zap2dahdi,1()") in new stack
-- Executing [zap2dahdi@macro-dial-one:1] ExecIf("SIP/475-0000da0e", "0?Return()") in new stack
-- Executing [zap2dahdi@macro-dial-one:2] Set("SIP/475-0000da0e", "NEWDIAL=") in new stack
-- Executing [zap2dahdi@macro-dial-one:3] Set("SIP/475-0000da0e", "LOOPCNT2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:4] Set("SIP/475-0000da0e", "ITER2=1") in new stack
-- Executing [zap2dahdi@macro-dial-one:5] Set("SIP/475-0000da0e", "THISPART2=NOT_INUSE") in new stack
-- Executing [zap2dahdi@macro-dial-one:6] ExecIf("SIP/475-0000da0e", "0?Set(THISPART2=DAHDI_INUSE)") in new stack
-- Executing [zap2dahdi@macro-dial-one:7] Set("SIP/475-0000da0e", "NEWDIAL=NOT_INUSE&") in new stack
-- Executing [zap2dahdi@macro-dial-one:8] Set("SIP/475-0000da0e", "ITER2=2") in new stack
-- Executing [zap2dahdi@macro-dial-one:9] GotoIf("SIP/475-0000da0e", "0?begin2") in new stack
-- Executing [zap2dahdi@macro-dial-one:10] Set("SIP/475-0000da0e", "THISDIAL=NOT_INUSE") in new stack
-- Executing [zap2dahdi@macro-dial-one:11] Return("SIP/475-0000da0e", "") in new stack
-- Executing [dstring@macro-dial-one:9] Set("SIP/475-0000da0e", "DSTRING=NOT_INUSE&") in new stack
-- Executing [dstring@macro-dial-one:10] Set("SIP/475-0000da0e", "ITER=2") in new stack
-- Executing [dstring@macro-dial-one:11] GotoIf("SIP/475-0000da0e", "0?begin") in new stack
-- Executing [dstring@macro-dial-one:12] Set("SIP/475-0000da0e", "DSTRING=NOT_INUSE") in new stack
-- Executing [dstring@macro-dial-one:13] Return("SIP/475-0000da0e", "") in new stack
-- Executing [s@macro-dial-one:27] GotoIf("SIP/475-0000da0e", "0?nodial") in new stack
-- Executing [s@macro-dial-one:28] GotoIf("SIP/475-0000da0e", "0?skiptrace") in new stack
-- Executing [s@macro-dial-one:29] GosubIf("SIP/475-0000da0e", "1?ctset,1():ctclear,1()") in new stack
-- Executing [ctset@macro-dial-one:1] Set("SIP/475-0000da0e", "DB(CALLTRACE/7006)=475") in new stack
-- Executing [ctset@macro-dial-one:2] Return("SIP/475-0000da0e", "") in new stack
-- Executing [s@macro-dial-one:30] Set("SIP/475-0000da0e", "D_OPTIONS=Ttr") in new stack
-- Executing [s@macro-dial-one:31] ExecIf("SIP/475-0000da0e", "0?SIPAddHeader(Alert-Info: )") in new stack
-- Executing [s@macro-dial-one:32] ExecIf("SIP/475-0000da0e", "0?SIPAddHeader()") in new stack
-- Executing [s@macro-dial-one:33] ExecIf("SIP/475-0000da0e", "0?Set(CHANNEL(musicclass)=)") in new stack
-- Executing [s@macro-dial-one:34] GosubIf("SIP/475-0000da0e", "0?qwait,1()") in new stack
-- Executing [s@macro-dial-one:35] Set("SIP/475-0000da0e", "__CWIGNORE=") in new stack
-- Executing [s@macro-dial-one:36] Set("SIP/475-0000da0e", "__KEEPCID=TRUE") in new stack
-- Executing [s@macro-dial-one:37] GotoIf("SIP/475-0000da0e", "0?usegoto,1") in new stack
-- Executing [s@macro-dial-one:38] GotoIf("SIP/475-0000da0e", "0?godial") in new stack
-- Executing [s@macro-dial-one:39] Gosub("SIP/475-0000da0e", "sub-presencestate-display,s,1(7006)") in new stack
[Apr 24 12:43:01] WARNING[28561][C-00009ab4]: func_presencestate.c:132 presence_read: PRESENCE_STATE unknown
-- Executing [s@sub-presencestate-display:1] Goto("SIP/475-0000da0e", "state-,1") in new stack
-- Goto (sub-presencestate-display,state-,1)
-- Executing [state-@sub-presencestate-display:1] Set("SIP/475-0000da0e", "PRESENCESTATE_DISPLAY=") in new stack
-- Executing [state-@sub-presencestate-display:2] Return("SIP/475-0000da0e", "") in new stack
-- Executing [s@macro-dial-one:40] Set("SIP/475-0000da0e", "CONNECTEDLINE(name,i)=7006") in new stack
-- Executing [s@macro-dial-one:41] Set("SIP/475-0000da0e", "CONNECTEDLINE(num)=7006") in new stack
-- Executing [s@macro-dial-one:42] Set("SIP/475-0000da0e", "D_OPTIONS=TtrI") in new stack
-- Executing [s@macro-dial-one:43] Dial("SIP/475-0000da0e", "NOT_INUSE,15,TtrI") in new stack
[Apr 24 12:43:01] WARNING[28561][C-00009ab4]: app_dial.c:2330 dial_exec_full: Dial argument takes format (technology/resource)
== Spawn extension (macro-dial-one, s, 43) exited non-zero on 'SIP/475-0000da0e' in macro 'dial-one'
== Spawn extension (macro-exten-vm, s, 7) exited non-zero on 'SIP/475-0000da0e' in macro 'exten-vm'
== Spawn extension (526906, 7006, 2) exited non-zero on 'SIP/475-0000da0e'
-- Executing [h@526906:1] Macro("SIP/475-0000da0e", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/475-0000da0e", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/475-0000da0e", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("SIP/475-0000da0e", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/475-0000da0e' in macro 'hangupcall'
== Spawn extension (526906, h, 1) exited non-zero on 'SIP/475-0000da0e'

Код: выделить все
asterisk -rx 'database show' | grep 7006

[Показать] Спойлер: asterisk -rx 'database show' | grep 7006
/AMPUSER/617/ccss/last_number : 7006
/AMPUSER/7006/answermode : NOT_INUSE
/AMPUSER/7006/answermode : disabled
/AMPUSER/7006/cfringtimer : 0
/AMPUSER/7006/cidname : 7006
/AMPUSER/7006/cidnum : NOT_INUSE
/AMPUSER/7006/cidnum : 7006
/AMPUSER/7006/cidnum : 7006
/AMPUSER/7006/cidnum : 7006
/AMPUSER/7006/concurrency_limit : 0
/AMPUSER/7006/device : 7006
/AMPUSER/7006/followme/changecid : default
/AMPUSER/7006/followme/ddial : DIRECT
/AMPUSER/7006/followme/fixedcid :
/AMPUSER/7006/followme/grpconf : DISABLED
/AMPUSER/7006/followme/grplist : 7006-787
/AMPUSER/7006/followme/grptime : 60
/AMPUSER/7006/followme/prering : 30
/AMPUSER/7006/noanswer :
/AMPUSER/7006/outboundcid : *****03394
/AMPUSER/7006/password :
/AMPUSER/7006/queues/qnostate : usestate
/AMPUSER/7006/recording :
/AMPUSER/7006/recording/in/external : NOT_INUSE
/AMPUSER/7006/recording/in/external : dontcare
/AMPUSER/7006/recording/in/external : dontcare
/AMPUSER/7006/recording/in/internal : NOT_INUSE
/AMPUSER/7006/recording/in/internal : dontcare
/AMPUSER/7006/recording/in/internal : dontcare
/AMPUSER/7006/recording/ondemand : NOT_INUSE
/AMPUSER/7006/recording/ondemand : disabled
/AMPUSER/7006/recording/ondemand : disabled
/AMPUSER/7006/recording/out/external : NOT_INUSE
/AMPUSER/7006/recording/out/external : dontcare
/AMPUSER/7006/recording/out/external : dontcare
/AMPUSER/7006/recording/out/external : dontcare
/AMPUSER/7006/recording/out/internal : NOT_INUSE
/AMPUSER/7006/recording/out/internal : dontcare
/AMPUSER/7006/recording/out/internal : dontcare
/AMPUSER/7006/recording/priority : NOT_INUSE
/AMPUSER/7006/recording/priority : 10
/AMPUSER/7006/recording/priority : 0
/AMPUSER/7006/ringtimer : 0
/AMPUSER/7006/voicemail : NOT_INUSE
/AMPUSER/7006/voicemail : novm
/AMPUSER/7006/voicemail : novm
/CALLTRACE/7006 : 475
/CustomDevstate/FOLLOWME7006 : BUSY
/DEVICE/7006/default_user : 7006
/DEVICE/7006/dial : NOT_INUSE
/DEVICE/7006/dial : SIP/7006
/DEVICE/7006/type : NOT_INUSE
/DEVICE/7006/type : fixed
/DEVICE/7006/type : fixed
/DEVICE/7006/user : NOT_INUSE
/DEVICE/7006/user : 7006
/DEVICE/7006/user : 7006
/DEVICE/7006/user : 7006
/SIP/Registry/7006 : 172.*.129.31:5062:3600:7006:sip:7006@172.*.129.31:5062

Тоесть произошла двойная (местами даже тройная) запись в базу данных со значением "NOT_INUSE"
Пробовал удалять/создавать средствами FreePBX - проблема не решилась.
Как можно подчистить БД?
Пробовал
Код: выделить все
sudo asterisk -rx 'database del /AMPUSER/7006/answermode NOT_INUSE'
Database entry removed.

Но вывод не изменяется.
Изображение
Аватар пользователя
Kroteg
 
Сообщений: 195
Зарегистрирован: 11 янв 2018, 14:51

Re: Двойная запись в базу данных

Сообщение ded » 24 апр 2018, 12:00

А не поигрались ли Вы с модулем PRESENCESTATE в вэб интерфейсе?
Ибо вижу, что Dial отрабатывает совсем неверно:
-- Executing [s@macro-dial-one:43] Dial("SIP/475-0000da0e", "NOT_INUSE,15,TtrI") in new stack
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Двойная запись в базу данных

Сообщение Kroteg » 24 апр 2018, 12:10

ded писал(а):А не поигрались ли Вы с модулем PRESENCESTATE в вэб интерфейсе?

Нет - данный модуль отключен.
Насчет диала вижу.
Есть ещё одна особенность - в вебинтферфейсе CID Num Alias: NOT_INUSE
При нажатии Sibmit ругается на его неверное значение, а при удалении и сохранении настроек - значение возвращается.
Изображение
Аватар пользователя
Kroteg
 
Сообщений: 195
Зарегистрирован: 11 янв 2018, 14:51

Re: Двойная запись в базу данных

Сообщение ded » 24 апр 2018, 12:29

А какую версию FreePBX мучаете? Девелоперскую, нестабильную?

Крайний вариант - удалить нативную базу Астериск совсем (убрать в другое место), при нажимании на Apply Астериск её пересоздаст (а может и не полностью).
Если будет плохо - вернуть назад.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Двойная запись в базу данных

Сообщение Kroteg » 24 апр 2018, 16:46

FreePBX 2.11.0.43 is licensed under the GPL
Asterisk 11.19.0
Изображение
Аватар пользователя
Kroteg
 
Сообщений: 195
Зарегистрирован: 11 янв 2018, 14:51

Re: Двойная запись в базу данных

Сообщение ded » 24 апр 2018, 18:57

При звонке SIP/475 на 7006 в контексте 526906 (отдельный вопрос по этому контексту - откуда такой взялся?)

Ерунда там в обработке макроса macro-dial-one по метке dstring:
-- Executing [dstring@macro-dial-one:1] Set("SIP/475-0000da0e", "DSTRING=") in new stack
-- Executing [dstring@macro-dial-one:2] Set("SIP/475-0000da0e", "DEVICES=7006") in new stack
-- Executing [dstring@macro-dial-one:3] ExecIf("SIP/475-0000da0e", "0?Return()") in new stack
-- Executing [dstring@macro-dial-one:4] ExecIf("SIP/475-0000da0e", "0?Set(DEVICES=006)") in new stack
-- Executing [dstring@macro-dial-one:5] Set("SIP/475-0000da0e", "LOOPCNT=1") -- -- -- первое вхождение на эту метку dstring
-- Executing [dstring@macro-dial-one:6] Set("SIP/475-0000da0e", "ITER=1") -- -- -- первое вхождение на эту метку dstring
-- Executing [dstring@macro-dial-one:7] Set("SIP/475-0000da0e", "THISDIAL=NOT_INUSE") in new stack


Выполнилась проверка
Gosub(sub-presencestate-display,s,1(${EXTTOCALL}))

-- Executing [s@macro-dial-one:39] Gosub("SIP/475-0000da0e", "sub-presencestate-display,s,1(7006)") in new stack
[Apr 24 12:43:01] WARNING[28561][C-00009ab4]: func_presencestate.c:132 presence_read: PRESENCE_STATE unknown
согласно этому в переменную PRESENCESTATE_DISPLAY ничего не записала
-- Executing [state-@sub-presencestate-display:1] Set("SIP/475-0000da0e", "PRESENCESTATE_DISPLAY=")

и далее - вот ошибка:
-- Executing [s@macro-dial-one:42] Set("SIP/475-0000da0e", "D_OPTIONS=TtrI") in new stack
-- Executing [s@macro-dial-one:43] Dial("SIP/475-0000da0e", "NOT_INUSE,15,TtrI") in new stack

это выполнение 50 и 51 шагов макроса macro-dial-one:
Код: выделить все
     ExecIf($["${DIRECTION}" = "INBOUND"]?Set(D_OPTIONS=${STRREPLACE(D_OPTIONS,T)}I)) [pbx_config]
     Dial(${DSTRING},${ARG1},${D_OPTIONS}b(func-apply-sipheaders^s^1)) [pbx_config]


А записала она ерунду туда при шаге
-- Executing [dstring@macro-dial-one:9] Set("SIP/475-0000da0e", "DSTRING=NOT_INUSE&") in new stack
это метка doset на 15-м шаге macro-dial-one
Код: выделить все
Set(DSTRING=${DSTRING}${THISDIAL}&)


то есть содержимое ${DSTRING},${ARG1} должно было бы быть DAHDI/7006, или какое?
Если это не SIP устройство, а DAHDI, то Вы, вероятно, поставили птичку "Show presense status" при создании этого экстена. Что является парадоксом, потому что устройства DAHDI не сообщают о своём PRESENCESTATE.
Поэтому не удаляется из DB.
Kroteg писал(а):Есть ещё одна особенность - в вебинтферфейсе CID Num Alias: NOT_INUSE
При нажатии Sibmit ругается на его неверное значение, а при удалении и сохранении настроек - значение возвращается.


В базе видим -
/AMPUSER/7006/cidname : 7006
/AMPUSER/7006/cidnum : NOT_INUSE

Надо уже удалять из MySQL. Или проще - удалить 7006 и завести 7007 например.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Двойная запись в базу данных

Сообщение Kroteg » 25 апр 2018, 07:57

ded писал(а):При звонке SIP/475 на 7006 в контексте 526906 (отдельный вопрос по этому контексту - откуда такой взялся?)
Это уже настройка для исходящих вызовов - Custom Context
ded писал(а):Если это не SIP устройство, а DAHDI,

Это именно SIP-устройство и создавалось именно как SIP.
ded писал(а):Или проще - удалить 7006 и завести 7007 например.

Подобным образом и поступил. Решения пока все равно нет, а человеку работать надо.
Изображение
Аватар пользователя
Kroteg
 
Сообщений: 195
Зарегистрирован: 11 янв 2018, 14:51

Re: Двойная запись в базу данных

Сообщение ded » 25 апр 2018, 11:12

/AMPUSER/7006/cidnum : NOT_INUSE в базе не должен быть NOT_INUSE
Если заменить командой
CLI> database put /AMPUSER/7006/cidnum 7006 - заменяется?
Можно ли проверить это значение в том же поле в MySQL?

Где-то логическая ошибка при заполнении случилась, и её надо дальше раскапывать.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

Re: Двойная запись в базу данных

Сообщение Kroteg » 25 апр 2018, 12:06

ded писал(а):CLI> database put /AMPUSER/7006/cidnum 7006 - заменяется?

sudo asterisk -rx 'database put /AMPUSER/7006/cidnum 7006'
Usage: database put <family> <key> <value>
Adds or updates an entry in the Asterisk database for
a given family, key, and value.

Тоже была идея как писал выше хотя бы поудалять записи, но что именно <family>, что <key> а что из этого <value>?
/AMPUSER/7006/cidnum - family, а второй столбец - ключ или значение? Иначе говоря - как правильно составить запрос для удаления ненужных записей?
Код: выделить все
$ sudo asterisk -rx 'database del /AMPUSER/7006/cidnum 7006'
Database entry removed.
$ sudo asterisk -rx 'database del /AMPUSER/7006/ 7006'
Database entry removed.
$ sudo asterisk -rx 'database del /AMPUSER/7006/cidnum NOT_INUSE'
Database entry removed.
Тоесть отказ не дает - типа удаляет, но запись по факту остается.
Изображение
Аватар пользователя
Kroteg
 
Сообщений: 195
Зарегистрирован: 11 янв 2018, 14:51

Re: Двойная запись в базу данных

Сообщение ded » 25 апр 2018, 12:27

Надо указывать без начального слэша.
CLI> database showkey AMPUSER/7006/cidnum покажет :NOT_INUSE

забиваем
CLI> database put AMPUSER/7006 cidnum 7006
AMPUSER/7006 - <family> cidnum - <key>, 7006 - <value>
смотрим
CLI> database showkey AMPUSER/7006/cidnum покажет :7006
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 23

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH