First time here? Check out the FAQ!

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

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 секунда. Может есть какие-нибудь настройки которые исправят ошибку.

спросил Feb 17 '2

aldar Gravatar aldar
83 10 8

Comments

duration billsec

15 1

9 2

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

eux (Feb 17 '2)edit

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

meral (Feb 17 '2)edit

Будьте первым, кто ответит на этот вопрос!

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 ленту новостей

Статистика

Задан: Feb 17 '2

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

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

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

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