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

freepbx billsec

0

Freepbx 15.0.21 Asterisk 16.13.0

Billsec считается от начала звонка, а не от начала разговора. То есть duration и billsec всегда имеют одинаковые значения.

Меня интересуют исходящие звонки, так что я написал custom dialplan.

exten => s,1,NoOp(Entering custom context)
same => n,Dial(SIP/77777777/${dest},25,M(resetcdr)) #Trying to reset CDR on answer
;same => n,Dial(SIP/77777777/${dest},25,M(getAnswer))   #Saving ring time to custom var 
same => n,ResetCDR() #Even not executing
same => n,ForkCDR() #Even not executing 
same => n,hangup()

#Sending variables to script to calculate real Billsec
exten => h,1,System(/opt/asterisk/save-billsec.sh ${CDR(UNIQUEID)} ${CDR(billsec)} ${MY_RINGTIME})

[macro-resetcdr]
exten => s,1,Dumpchan()
same => n,ResetCDR()    #Does nothing
same => n,ForkCDR() #Does nothing

[macro-getAnswer]
exten => s,1,Dumpchan()
same => n,Set(MY_RINGTIME=${ElapsedTime})   #Saving ring time to custom var

Тут я пытался всяко разно reset-нуть CDR - не получается. Далее я пытался перезаписать CDR(billsec) переменную. На что система мне ответила, billsec is read-only variable. И последнее что я сделал это написал скрипт, который сохраняет uniqueID и настоящий billsec в файл. А потом уже другой скрипт через крон переписывает значение billsec в таблице CDR:

update cdr set billsec = $time where uniqueid = $uniqueid order by calldate desc;

Но это извращение и не всегда работает. Я предполагаю что это могут быть какие-нибудь настройки, которые исправят billsec. Вот немного лога касающегося нашего кейса:

[2022-02-17 14:21:51] VERBOSE[26180][C-000001b9] app_dial.c: Called SIP/77777777/88888888
[2022-02-17 14:21:53] VERBOSE[26180][C-000001b9] app_dial.c: SIP/77777777-00000379 is making progress passing it to SIP/+97677777778-00000378
[2022-02-17 14:21:53] VERBOSE[26180][C-000001b9] app_dial.c: SIP/77777777-00000379 is ringing

[2022-02-17 14:22:04] VERBOSE[26180][C-000001b9] app_dial.c: SIP/77777777-00000379 answered SIP/+97677777778-00000378
[2022-02-17 14:22:04] VERBOSE[26180][C-000001b9] pbx.c: Executing [s@macro-dumpchan:1] DumpChan("SIP/77777777-00000379", "") in new stack
[2022-02-17 14:22:04] VERBOSE[26180][C-000001b9] app_dumpchan.c:
Dumping Info For Channel: SIP/77777777-00000379:
================================================================================
Info:
Name=               SIP/77777777-00000379
Type=               SIP
UniqueID=           1645078911.1159
LinkedID=           1645078909.1158
CallerIDNum=        s
CallerIDName=       (N/A)
ConnectedLineIDNum= 88888889
ConnectedLineIDName=88888889
DNIDDigits=         (N/A)
RDNIS=              (N/A)
Parkinglot=         default
Language=           mn
State=              Up (6)
Rings=              0
NativeFormat=       (ulaw)
WriteFormat=        ulaw
ReadFormat=         ulaw
RawWriteFormat=     ulaw
RawReadFormat=      ulaw
WriteTranscode=     No
ReadTranscode=      No
1stFileDescriptor=  46
Framesin=           559
Framesout=          625
TimetoHangup=       0
ElapsedTime=        0h0m    s
BridgeID=           (Not bridged)
Context=            macro-dumpchan
Extension=          s
Priority=           1
CallGroup=
PickupGroup=
Application=        DumpChan
Data=               (Empty)
Blocking_in=        (Not Blocking)

Variables:
MACRO_DEPTH=1
MACRO_PRIORITY=1
MACRO_CONTEXT=send-sms
MACRO_EXTEN=s
DIALEDPEERNUMBER=77777777/88888888
SIPCALLID=2acb005419bf921317853c8e0a1cafa5@ims.ub.unitel.mn
ivrreturn=0
IVR_RETVM=
IVR_CONTEXT=ivr-10
IVR_CONTEXT_ivr-10=
CALLINGNUMPRES_SV=allowed_not_screened
CALLINGNAMEPRES_SV=allowed_not_screened
REVERSAL_REJECT=FALSE
MOHCLASS=
FROM_DID=+97677777777
REC_STATUS=RECORDING
RECORD_ID=SIP/+97677777778-00000378
MIXMON_ID=0x7fb1d0056e10
CALLFILENAME=in-+97677777777-88888889-20220217-142149-1645078909.1158
REC_POLICY_MODE=FORCE
MON_FMT=wav
TIMESTR=20220217-142149
YEAR=2022
MONTH=02
DAY=17
DIRECTION=INBOUND
================================================================================
[2022-02-17 14:22:04] VERBOSE[26180][C-000001b9] pbx.c: Executing [s@macro-dumpchan:2] ResetCDR("SIP/77777777-00000379", "") in new stack
[2022-02-17 14:22:04] VERBOSE[26180][C-000001b9] pbx.c: Executing [s@macro-dumpchan:3] ForkCDR("SIP/77777777-00000379", "") in new stack

[2022-02-17 14:22:10] VERBOSE[26180][C-000001b9] bridge_channel.c: Channel SIP/+97677777778-00000378 left 'simple_bridge' basic-bridge <c8643e3c-067d-41ae-a228-fb8503564634>
[2022-02-17 14:22:10] VERBOSE[26180][C-000001b9] pbx.c: Executing [h@send-sms:8] DumpChan("SIP/+97677777778-00000378", "") in new stack
[2022-02-17 14:22:10] VERBOSE[26180][C-000001b9] app_dumpchan.c:
Dumping Info For Channel: SIP/+97677777778-00000378:
================================================================================
Info:
Name=               SIP/+97677777778-00000378
Type=               SIP
UniqueID=           1645078909.1158
LinkedID=           1645078909.1158
CallerIDNum=        88888889
CallerIDName=       88888889
ConnectedLineIDNum= (N/A)
ConnectedLineIDName=(N/A)
DNIDDigits=         +97677777777
RDNIS=              (N/A)
Parkinglot=         default
Language=           mn
State=              Up (6)
Rings=              0
NativeFormat=       (ulaw)
WriteFormat=        ulaw
ReadFormat=         ulaw
RawWriteFormat=     ulaw
RawReadFormat=      ulaw
WriteTranscode=     No
ReadTranscode=      No
1stFileDescriptor=  22
Framesin=           1074
Framesout=          982
TimetoHangup=       0
ElapsedTime=        0h0m21s
BridgeID=           (Not bridged)
Context=            send-sms
Extension=          h
Priority=           8
CallGroup=
PickupGroup=
Application=        DumpChan
Data=               (Empty)
Blocking_in=        (Not Blocking)

Variables:
SYSTEMSTATUS=SUCCESS
DIALSTATUS=ANSWER
DIALEDTIME_MS=21483
DIALEDTIME=21
ANSWEREDTIME_MS=21462
ANSWEREDTIME=21
RTPAUDIOQOSRTT=minrtt=0.002273;maxrtt=0.004501;avgrtt=0.003117;stdevrtt=0.000019;
RTPAUDIOQOSLOSS=minrxlost=0.000000;maxrxlost=0.000000;avgrxlost=0.000000;stdevrxlost=0.000000;reported_minlost=0.000000;reported_maxlost=13.000000;reported_avglost=3.750000;reported_stdevlost=15.256658;
RTPAUDIOQOSJITTER=minrxjitter=0.000003;maxrxjitter=0.001043;avgrxjitter=0.000274;stdevrxjitter=inf;reported_minjitter=0.000000;reported_maxjitter=16.000000;reported_avgjitter=6.000000;reported_stdevjitter=32.484184;
RTPAUDIOQOS=ssrc=916409440;themssrc=1681473114;lp=0;rxjitter=0.000000;rxcount=1061;txjitter=0.000440;txcount=963;rlp=0;rtt=0.002273
RTPAUDIOQOSRTTBRIDGED=minrtt=0.001098;maxrtt=0.001144;avgrtt=0.001121;stdevrtt=0.000001;
RTPAUDIOQOSLOSSBRIDGED=minrxlost=0.000000;maxrxlost=1.000000;avgrxlost=0.333333;stdevrxlost=1.170628;reported_minlost=0.000000;reported_maxlost=12.000000;reported_avglost=4.000000;reported_stdevlost=14.047538;
RTPAUDIOQOSJITTERBRIDGED=minrxjitter=0.000001;maxrxjitter=0.001128;avgrxjitter=0.000308;stdevrxjitter=inf;reported_minjitter=8.000000;reported_maxjitter=32.000000;reported_avgjitter=18.666667;reported_stdevjitter=20.014809;
RTPAUDIOQOSBRIDGED=ssrc=1143936400;themssrc=3875000504;lp=1;rxjitter=0.000000;rxcount=860;txjitter=0.000331;txcount=864;rlp=0;rtt=0.001098
DIALEDPEERNUMBER=77777777/88888888
DIALEDPEERNAME=SIP/77777777-00000379
RINGTIME_MS=1671
RINGTIME=1
PROGRESSTIME_MS=1487
PROGRESSTIME=1
dugaar=202
dest=88888888
ivrreturn=0
BACKGROUNDSTATUS=SUCCESS
IVR_MSG=custom/tsomoo_announce_day-8khz
IVR_RETVM=
IVR_CONTEXT=ivr-10
IVR_CONTEXT_ivr-10=
INVALID_LOOPCOUNT=0
TIMEOUT_LOOPCOUNT=0
DB_RESULT=
CALLINGNUMPRES_SV=allowed_not_screened
CALLINGNAMEPRES_SV=allowed_not_screened
REVERSAL_REJECT=FALSE
MOHCLASS=
GOSUB_RETVAL=
CALLED_BLACKLIST=1
returnhere=1
FROM_DID=+97677777777
REC_STATUS=RECORDING
RECORD_ID=SIP/+97677777778-00000378
MIXMON_ID=0x7fb1d0056e10
LOCAL_MIXMON_ID=0x7fb1d0056e10
MIXMONITOR_FILENAME=/var/spool/asterisk/monitor/2022/02/17/in-+97677777777-88888889-20220217-142149-1645078909.1158.wav
CALLFILENAME=in-+97677777777-88888889-20220217-142149-1645078909.1158
REC_POLICY_MODE=FORCE
FROMEXTEN=88888889
REC_POLICY_MODE_SAVE=
MON_FMT=wav
TIMESTR=20220217-142149
YEAR=2022
MONTH=02
DAY=17
NOW=1645078909
DIRECTION=INBOUND

14:21:53 - 14:22:04 - 11 сек - телефон звонил

14:22:04 - 14:22:10 - 6 сек - был отвечен / разговаривал

первый dumpchan - переменные, сразу после того как ответил

второй dumpchan - переменные, после того как положил трубку - dialedtime=21 answeredtime=21

Отсюда мы видим что, несмотря на то что разговор был 6 секунд, answeredtime считает с самого начал звонка и имеет значение 21 секунду. Отсюда и billsec в таблице cdr (asteriskcdrdb) тоже 21 секунда. Может есть какие-нибудь настройки которые исправят ошибку.

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

спросил 2022-02-17 10:48:53 +0400

aldar Gravatar aldar
83 10 8

Comments

duration billsec

15 1

9 2

asterisk 16.20.0 (в комплекте с freepbx 15).

eux ( 2022-02-17 12:21:45 +0400 )редактировать

значит, у вас звонок УЖЕ отвечен. Проверяйте.

meral ( 2022-02-17 15:19:12 +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 ленту новостей

Статистика

Задан: 2022-02-17 10:48:53 +0400

Просмотрен: 2,290 раз

Обновлен: Feb 17 '22

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

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