Просмотр исходного кода

групповой коллбек

svetlana 3 лет назад
Родитель
Сommit
ee626194de
1 измененных файлов с 10 добавлено и 16 удалено
  1. 10 16
      app/app.py

+ 10 - 16
app/app.py

@@ -233,15 +233,6 @@ async def celCallback(mngr: Manager, msg: Message):
         (msg.EventName == 'APP_END') and 
         (firstMessage.get('groupCall',False))):
       app.cache['cel_calls'][lid]['groupCall'] = False
-      if len(app.cache['cel_calls'][uid]['current_channels'])>0:
-        app.cache['cel_calls'][uid]['current_channels'] = {}
-        _cb = {'users': [],
-               'state': 'group_ringing',
-               'callerId': cid,
-               'callId': uid}
-        if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
-           _cb['WebCallId'] = app.cache['cel_calls'][msg.linkedid]['WebCallId']
-        reply = await doCallback('groupRinging', _cb)
     if (firstMessage.get('groupCall',False)):                         #for local calls only
       if msg.Channel.startswith('PJSIP/'):
         called = msg.CallerIDnum
@@ -254,16 +245,19 @@ async def celCallback(mngr: Manager, msg: Message):
           if msg.EventName == 'CHAN_START':                          #start dial
             app.cache['cel_calls'][lid]['current_channels'][channel] = called
             app.cache['cel_calls'][lid]['all_channels'][channel] = called
+            _cb = {'user': called,
+                 'state': 'group_start_ringing',
+                 'callerId': cid,
+                 'callId': firstMessage.UniqueID}
           else:                                                      #end dial
             app.cache['cel_calls'][uid]['current_channels'].pop(channel, False)
-          if old_count != len(app.cache['cel_calls'][lid]['current_channels']):
-            _cb = {'users': list(app.cache['cel_calls'][uid]['current_channels'].values()),
-                 'state': 'group_ringing',
+            _cb = {'user': called,
+                 'state': 'group_end_ringing',
                  'callerId': cid,
-                 'callId': uid}
-            if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
+                 'callId': firstMessage.UniqueID}
+          if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
               _cb['WebCallId'] = app.cache['cel_calls'][msg.linkedid]['WebCallId']
-            reply = await doCallback('groupRinging', _cb)
+          reply = await doCallback('groupRinging', _cb)
         if ((msg.EventName == 'ANSWER') and
           (msg.Application == 'AppDial') and
           (lid in app.cache['cel_calls'])):
@@ -273,7 +267,7 @@ async def celCallback(mngr: Manager, msg: Message):
                'users': list(app.cache['cel_calls'][uid]['all_channels'].keys()),
                'state': 'group_answer',
                'callerId': cid,
-               'callId': uid}
+               'callId': firstMessage.UniqueID}
           if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
             _cb['WebCallId'] = app.cache['cel_calls'][msg.linkedid]['WebCallId']
           reply = await doCallback('groupAnswered', _cb)