|
|
@@ -411,15 +411,22 @@ async def celCallback(mngr: Manager, msg: Message):
|
|
|
await db.execute(query='update cdr set transfer_from=(select distinct linkedid from cdr where uniqueid=:first) where linkedid=:second;',values={'first': f,'second': s})
|
|
|
if ("c2c_start_time" in app.cache['cel_calls'][lid]):
|
|
|
call = app.cache['cel_calls'][lid]
|
|
|
+ start = datetime.strptime(call["c2c_start_time"],"%Y-%m-%d %H:%M:%S")
|
|
|
+ end = datetime.strptime(msg.EventTime,"%Y-%m-%d %H:%M:%S")
|
|
|
_cb = {'webhook_name': "c2c_end",
|
|
|
- 'asteriskCallId':msg.LinkedID,
|
|
|
- 'start_time': call["c2c_start_time"],
|
|
|
- 'end_time': msg.EventTime,
|
|
|
+ 'callId':msg.LinkedID,
|
|
|
+ 'speakingTime': 0,
|
|
|
+ 'waitingTime': (end-start).total_seconds(),
|
|
|
+ 'answered': False,
|
|
|
'ANumber': call["c2c_user"],
|
|
|
'BNumber': call["c2c_phone"]}
|
|
|
if "answer_time" in call:
|
|
|
- _cb["answer_time"]=call["answer_time"]
|
|
|
+ answer = datetime.strptime(call["answer_time"],"%Y-%m-%d %H:%M:%S")
|
|
|
+ _cb["answered"] = True
|
|
|
+ _cb['waitingTime'] = (answer-start).total_seconds()
|
|
|
+ _cb['speakingTime'] = (end-answer).total_seconds()
|
|
|
app.logger.warning('c2c cb {}'.format(_cb))
|
|
|
+ reply = await doCallback(call["c2c_device"], _cb)
|
|
|
app.cache['cel_calls'].pop(lid, False)
|
|
|
app.cache['cel_queue_calls'].pop(lid, False)
|
|
|
|
|
|
@@ -440,15 +447,19 @@ async def celCallback(mngr: Manager, msg: Message):
|
|
|
_cb[vn] = vv
|
|
|
reply = await doCallbackPostfix(callback_type,postfix, _cb)
|
|
|
if (msg.EventName == 'USER_DEFINED') and (msg.UserDefType == 'START_C2C'):
|
|
|
- app.logger.warning('c2c event {}'.format(msg))
|
|
|
app.cache['cel_calls'][lid]["c2c_start_time"]=msg.EventTime
|
|
|
- app.cache['cel_calls'][lid]["c2c_user"] = msg.CallerIDnum
|
|
|
+ device = msg.CallerIDnum
|
|
|
+ app.cache['cel_calls'][lid]["c2c_device"] = device
|
|
|
+ if device in app.cache['usermap']:
|
|
|
+ app.cache['cel_calls'][lid]["c2c_user"] = app.cache['usermap'][device]
|
|
|
+ else:
|
|
|
+ app.cache['cel_calls'][lid]["c2c_user"] = device
|
|
|
app.cache['cel_calls'][lid]["c2c_phone"] = msg.Exten
|
|
|
_cb = {'webhook_name': "c2c_start",
|
|
|
- 'asteriskCallId':msg.LinkedID,
|
|
|
- 'start_time': msg.EventTime,
|
|
|
- 'ANumber': msg.CallerIDnum,
|
|
|
+ 'callId':msg.LinkedID,
|
|
|
+ 'ANumber': app.cache['cel_calls'][lid]["c2c_user"],
|
|
|
'BNumber': msg.Exten}
|
|
|
+ reply = await doCallback(device, _cb)
|
|
|
app.logger.warning('c2c cb {}'.format(_cb))
|
|
|
|
|
|
async def getCDR(start=None,
|
|
|
@@ -1263,7 +1274,7 @@ class Originate_test(Resource):
|
|
|
device = device.replace('{}&'.format(user), '')
|
|
|
_act = { 'Action':'Originate',
|
|
|
'Channel':'PJSIP/{}'.format(device),
|
|
|
- 'Context':'form-internal-c2c',
|
|
|
+ 'Context':'from-internal-c2c-test',
|
|
|
'Exten':number,
|
|
|
'Priority': '1',
|
|
|
'Async':'true',
|