Changeset 212

Show
Ignore:
Timestamp:
03/04/08 22:12:31 (6 months ago)
Author:
klaus
Message:

- forward RINGING indication to incoming channel
- forward CONGESTION (ugly hack, did not knew how to make it nicer)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • app_h324m/app_h324m.c

    r209 r212  
    733733                                switch (f->subclass)  
    734734                                { 
    735                                         case AST_CONTROL_RINGING:        
     735                                        case AST_CONTROL_RINGING: 
     736                                                ast_indicate(chan, AST_CONTROL_RINGING); 
    736737                                                break; 
    737738                                        case AST_CONTROL_BUSY: 
     
    10571058                                switch (f->subclass)  
    10581059                                { 
    1059                                         case AST_CONTROL_RINGING:        
     1060                                        case AST_CONTROL_RINGING: 
     1061                                                ast_indicate(chan, AST_CONTROL_RINGING); 
    10601062                                                break; 
    10611063                                        case AST_CONTROL_BUSY: 
    1062                                         case AST_CONTROL_CONGESTION: 
     1064                                                ast_log(LOG_DEBUG, "h324m_call: pseudo channel: BUSY\n"); 
     1065                                                ast_log(LOG_DEBUG, "h324m_call: pseudo channel: hangupcause=%d\n",pseudo->hangupcause); 
    10631066                                                /* Delete frame */ 
    10641067                                                ast_frfree(f); 
    10651068                                                /* Save cause */ 
    1066                                                 reason = pseudo->hangupcause; 
     1069                                                reason = AST_CAUSE_BUSY; 
     1070                                                /* exit */ 
     1071                                                goto hangup_pseudo; 
     1072                                                break; 
     1073                                        case AST_CONTROL_CONGESTION: 
     1074                                                ast_log(LOG_DEBUG, "h324m_call: pseudo channel: CONGESTION\n"); 
     1075                                                ast_log(LOG_DEBUG, "h324m_call: pseudo channel: hangupcause=%d\n",pseudo->hangupcause); 
     1076                                                /* Delete frame */ 
     1077                                                ast_frfree(f); 
     1078                                                /* Save cause */ 
     1079                                                reason = AST_CAUSE_CONGESTION; 
    10671080                                                /* exit */ 
    10681081                                                goto hangup_pseudo; 
     
    10721085                                                reason = 0;      
    10731086                                                break; 
     1087                                        default: 
     1088                                                reason = pseudo->hangupcause; 
    10741089                                } 
    10751090                        } 
     
    10981113        /* If no answer */ 
    10991114        if (pseudo->_state != AST_STATE_UP) 
     1115        {       ast_log(LOG_DEBUG, "h324m_call: pseudo channel not up -> hangup\n"); 
    11001116                /* goto end */ 
    11011117                goto clean_pseudo;  
     1118        } 
    11021119 
    11031120        /* Create session */ 
     
    12471264end: 
    12481265        /* Hangup channel if needed */ 
    1249       ast_softhangup(chan, reason); 
     1266//    ast_softhangup(chan, reason); 
    12501267 
    12511268        /* Unlock module*/ 
     
    12531270 
    12541271        //Exit 
    1255         return -1; 
     1272//      return -1; 
     1273        chan->hangupcause = reason; 
     1274        return 0; 
    12561275} 
    12571276 
Copyright 2006 - Sergio García Murillo
Powered by Trac - Edgewall Software