svetlana 3 роки тому
батько
коміт
fae268bb56
1 змінених файлів з 17 додано та 14 видалено
  1. 17 14
      app/app.py

+ 17 - 14
app/app.py

@@ -226,21 +226,25 @@ async def celCallback(mngr: Manager, msg: Message):
     uid = firstMessage.LinkedID
     if ((msg.Application == 'Queue') and
         (msg.EventName == 'APP_START') and 
-        (firstMessage.Context == 'from-internal')):
+        (firstMessage.Context == 'from-internal')) and 
+        (cid is not None) and (len(cid) < 7):
       app.cache['cel_calls'][lid]['groupCall'] = True
     if ((msg.Application == 'Queue') and
         (msg.EventName == 'APP_END') and 
         (firstMessage.Context == 'from-internal')):
       app.cache['cel_calls'][lid]['groupCall'] = False
-    if (cid is not None) and (len(cid) < 7):                         #for local calls only
-      if msg.Context in ('from-queue'):
+    if (firstMessage.get('groupCall',False)):                         #for local calls only
+      if msg.Channel.startswith('PJSIP/'):
+        called = msg.CallerIDnum
+        if called in app.cache['usermap']:
+          called = app.cache['usermap'][called]
         if ((msg.EventName == 'CHAN_START') or
             ((msg.EventName == 'CHAN_END') and ('answered' not in firstMessage))):
           old_count = len(app.cache['cel_calls'][lid]['current_channels'])
-          channel = msg.Channel.split(';')[0]
+          channel = msg.Channel
           if msg.EventName == 'CHAN_START':                          #start dial
-            app.cache['cel_calls'][lid]['current_channels'][channel] = msg.Exten
-            app.cache['cel_calls'][lid]['all_channels'][channel] = msg.Exten
+            app.cache['cel_calls'][lid]['current_channels'][channel] = called
+            app.cache['cel_calls'][lid]['all_channels'][channel] = called
           else:                                                      #end dial
             app.cache['cel_calls'][uid]['current_channels'].pop(channel, False)
           if old_count != len(app.cache['cel_calls'][lid]['current_channels']):
@@ -251,20 +255,19 @@ async def celCallback(mngr: Manager, msg: Message):
             if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
               _cb['WebCallId'] = app.cache['cel_calls'][msg.linkedid]['WebCallId']
             reply = await doCallback('groupRinging', _cb)
-      if ((msg.EventName == 'ANSWER') and
+        if ((msg.EventName == 'ANSWER') and
           (msg.Application == 'AppDial') and
-          firstMessage.get('groupCall',False) and 
           (lid in app.cache['cel_calls'])):
-        called = msg.Exten
-        app.cache['cel_calls'][lid]['answered'] = True
-        _cb = {'user': called,
+          #called = msg.Exten
+          app.cache['cel_calls'][lid]['answered'] = True
+          _cb = {'user': called,
                'users': list(app.cache['cel_calls'][uid]['all_channels'].keys()),
                'state': 'group_answer',
                '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('groupAnswered', _cb)
+          if ('WebCallId' in app.cache['cel_calls'][msg.linkedid]):
+            _cb['WebCallId'] = app.cache['cel_calls'][msg.linkedid]['WebCallId']
+          reply = await doCallback('groupAnswered', _cb)
     if ((msg.Application == 'Queue') and
         (firstMessage.Context == 'from-pstn')):
       if (msg.EventName == 'APP_START'):