@ -1095,6 +1095,7 @@ struct sip_peer {
int inRinging ; /*!< Number of calls ringing */
int onHold ; /*!< Peer has someone on hold */
int call_limit ; /*!< Limit of concurrent calls */
int busy_limit ; /*!< Limit where we signal busy */
enum transfermodes allowtransfer ; /*! SIP Refer restriction scheme */
char vmexten [ AST_MAX_EXTENSION ] ; /*!< Dialplan extension for MWI notify message*/
char mailbox [ AST_MAX_EXTENSION ] ; /*!< Mailbox setting for MWI checks */
@ -10207,6 +10208,8 @@ static int _sip_show_peer(int type, int fd, struct mansession *s, const struct m
ast_cli ( fd , " VM Extension : %s \n " , peer - > vmexten ) ;
ast_cli ( fd , " LastMsgsSent : %d/%d \n " , ( peer - > lastmsgssent & 0x7fff0000 ) > > 16 , peer - > lastmsgssent & 0xffff ) ;
ast_cli ( fd , " Call limit : %d \n " , peer - > call_limit ) ;
if ( peer - > busy_limit )
ast_cli ( fd , " Busy limit : %d \n " , peer - > busy_limit ) ;
ast_cli ( fd , " Dynamic : %s \n " , ( ast_test_flag ( & peer - > flags [ 1 ] , SIP_PAGE2_DYNAMIC ) ? " Yes " : " No " ) ) ;
ast_cli ( fd , " Callerid : %s \n " , ast_callerid_merge ( cbuf , sizeof ( cbuf ) , peer - > cid_name , peer - > cid_num , " <unspecified> " ) ) ;
ast_cli ( fd , " MaxCallBR : %d kbps \n " , peer - > maxcallbitrate ) ;
@ -10294,7 +10297,8 @@ static int _sip_show_peer(int type, int fd, struct mansession *s, const struct m
astman_append ( s , " VoiceMailbox: %s \r \n " , peer - > mailbox ) ;
astman_append ( s , " TransferMode: %s \r \n " , transfermode2str ( peer - > allowtransfer ) ) ;
astman_append ( s , " LastMsgsSent: %d \r \n " , peer - > lastmsgssent ) ;
astman_append ( s , " Call limit: %d \r \n " , peer - > call_limit ) ;
astman_append ( s , " Call-limit: %d \r \n " , peer - > call_limit ) ;
astman_append ( s , " Busy-limit: %d \r \n " , peer - > busy_limit ) ;
astman_append ( s , " MaxCallBR: %d kbps \r \n " , peer - > maxcallbitrate ) ;
astman_append ( s , " Dynamic: %s \r \n " , ( ast_test_flag ( & peer - > flags [ 1 ] , SIP_PAGE2_DYNAMIC ) ? " Y " : " N " ) ) ;
astman_append ( s , " Callerid: %s \r \n " , ast_callerid_merge ( cbuf , sizeof ( cbuf ) , peer - > cid_name , peer - > cid_num , " " ) ) ;
@ -15405,6 +15409,9 @@ static int sip_devicestate(void *data)
} else if ( p - > call_limit & & ( p - > inUse = = p - > call_limit ) )
/* check call limit */
res = AST_DEVICE_BUSY ;
else if ( p - > call_limit & & p - > busy_limit & & p - > inUse > = p - > busy_limit )
/* We're forcing busy before we've reached the call limit */
res = AST_DEVICE_BUSY ;
else if ( p - > call_limit & & p - > inUse )
/* Not busy, but we do have a call */
res = AST_DEVICE_INUSE ;