|
|
|
@ -21,6 +21,7 @@ enum { |
|
|
|
CALL_SUBCMD_BUSY = 0x05, /* {call_id:8} */ |
|
|
|
CALL_SUBCMD_BUSY = 0x05, /* {call_id:8} */ |
|
|
|
CALL_SUBCMD_CANCEL = 0x06, /* {call_id:8} */ |
|
|
|
CALL_SUBCMD_CANCEL = 0x06, /* {call_id:8} */ |
|
|
|
CALL_SUBCMD_HANGUP = 0x07, /* {call_id:8, reason:1} */ |
|
|
|
CALL_SUBCMD_HANGUP = 0x07, /* {call_id:8, reason:1} */ |
|
|
|
|
|
|
|
CALL_SUBCMD_END_ACK = 0x08, /* {call_id:8}: подтверждение HANGUP/CANCEL/DECLINE */ |
|
|
|
CALL_SUBCMD_MEDIA = 0x10, /* call_pkt_media + payload[] */ |
|
|
|
CALL_SUBCMD_MEDIA = 0x10, /* call_pkt_media + payload[] */ |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
@ -64,6 +65,7 @@ struct call_pkt_decline { uint8_t subcmd; uint64_t call_id; uint8_t reason; }; |
|
|
|
struct call_pkt_busy { uint8_t subcmd; uint64_t call_id; }; |
|
|
|
struct call_pkt_busy { uint8_t subcmd; uint64_t call_id; }; |
|
|
|
struct call_pkt_cancel { uint8_t subcmd; uint64_t call_id; }; |
|
|
|
struct call_pkt_cancel { uint8_t subcmd; uint64_t call_id; }; |
|
|
|
struct call_pkt_hangup { uint8_t subcmd; uint64_t call_id; uint8_t reason; }; |
|
|
|
struct call_pkt_hangup { uint8_t subcmd; uint64_t call_id; uint8_t reason; }; |
|
|
|
|
|
|
|
struct call_pkt_end_ack { uint8_t subcmd; uint64_t call_id; }; |
|
|
|
|
|
|
|
|
|
|
|
struct call_pkt_media { |
|
|
|
struct call_pkt_media { |
|
|
|
uint8_t subcmd; /* CALL_SUBCMD_MEDIA */ |
|
|
|
uint8_t subcmd; /* CALL_SUBCMD_MEDIA */ |
|
|
|
@ -93,6 +95,8 @@ struct call_pkt_media { |
|
|
|
#define CALL_NO_ROUTE_MAX_STRIKES 20 /* 20 × 300мс ≈ 6с без маршрута → fail-fast CONNECT_FAIL */ |
|
|
|
#define CALL_NO_ROUTE_MAX_STRIKES 20 /* 20 × 300мс ≈ 6с без маршрута → fail-fast CONNECT_FAIL */ |
|
|
|
#define CALL_NO_TRAFFIC_TB 200000 /* 20с — нет входящих медиа → HANGUP */ |
|
|
|
#define CALL_NO_TRAFFIC_TB 200000 /* 20с — нет входящих медиа → HANGUP */ |
|
|
|
#define CALL_TEARDOWN_DELAY_TB 5000 /* 500мс — задержка разрыва conn_mgr после завершения */ |
|
|
|
#define CALL_TEARDOWN_DELAY_TB 5000 /* 500мс — задержка разрыва conn_mgr после завершения */ |
|
|
|
|
|
|
|
#define CALL_END_RETRY_TB 3000 /* 300мс — повтор финальной команды до END_ACK */ |
|
|
|
|
|
|
|
#define CALL_END_TIMEOUT_TB 200000 /* 20с — предел удержания завершённой сессии без END_ACK */ |
|
|
|
#define CALL_MAX_TX_FRAMES 750 /* 15с: 10с перебоя + 5с запаса */ |
|
|
|
#define CALL_MAX_TX_FRAMES 750 /* 15с: 10с перебоя + 5с запаса */ |
|
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus |
|
|
|
#ifdef __cplusplus |
|
|
|
|