plugin_fix_fbox_anoncall: improved matching and rewriting (="fixing") Contact header on anonymous calls.

This commit is contained in:
Thomas Ries 2016-02-24 19:14:23 +00:00
parent cfff86c65f
commit a89bf08c66
3 changed files with 21 additions and 5 deletions

View File

@ -1,5 +1,7 @@
0.8.2
=====
24-Feb-2016: - plugin_fix_fbox_anoncall: improved matching and rewriting
(="fixing") Contact header on anonymous calls.
30-Jan-2016: - added plugin_fix_fbox_anoncall: a plugin to work around
some quirks from Fritzboxes when receiving anonymous calls
(calls with supressed CLID). Might also work for other UAs.

View File

@ -158,9 +158,6 @@ int PLUGIN_PROCESS(int stage, sip_ticket_t *ticket){
/* loop through urlmap table */
for (idx=0; idx<URLMAP_SIZE; idx++){
user_match=0;
param_match=0;
if (urlmap[idx].active == 0) continue;
if (urlmap[idx].true_url == NULL) continue;

View File

@ -1023,6 +1023,8 @@ int sip_find_direction(sip_ticket_t *ticket, int *urlidx) {
ticket->direction = DIRTYP_UNKNOWN;
DEBUGC(DBCLASS_SIP, "sip_find_direction: beginning search");
/* Search order is as follows:
* - "from" IP address is one of our registered local UAs
* => OUTGOING
@ -1063,6 +1065,9 @@ int sip_find_direction(sip_ticket_t *ticket, int *urlidx) {
}
}
}
if (type == DIRTYP_UNKNOWN) {
DEBUGC(DBCLASS_SIP, "sip_find_direction: no OUTGOING found");
}
/*
@ -1105,6 +1110,9 @@ int sip_find_direction(sip_ticket_t *ticket, int *urlidx) {
} /* is request */
} /* for i */
} /* if type == DIRTYP_UNKNOWN */
if (type == DIRTYP_UNKNOWN) {
DEBUGC(DBCLASS_SIP, "sip_find_direction: no INCOMING (To:) found");
}
/*
@ -1124,6 +1132,9 @@ int sip_find_direction(sip_ticket_t *ticket, int *urlidx) {
}
} /* for i */
} /* if type == DIRTYP_UNKNOWN */
if (type == DIRTYP_UNKNOWN) {
DEBUGC(DBCLASS_SIP, "sip_find_direction: no INCOMING RQ (SIP URI) found");
}
/* &&&& Open Issue &&&&
@ -1131,7 +1142,7 @@ int sip_find_direction(sip_ticket_t *ticket, int *urlidx) {
* (e.g 1393xxx@proxy01.sipphone.com for calls made sipphone -> FWD)
* How can we deal with this? Should I take into consideration the 'Via'
* headers? This is the only clue I have, pointing to the *real* UA.
* Maybe I should put in a 'siproxd' ftag value to recognize it as a header
* Maybe I should put in a 'siproxd' flag value to recognize it as a header
* inserted by myself
*/
if ((type == DIRTYP_UNKNOWN) &&
@ -1194,6 +1205,9 @@ int sip_find_direction(sip_ticket_t *ticket, int *urlidx) {
}
} /* is response */
} /* if type == DIRTYP_UNKNOWN */
if (type == DIRTYP_UNKNOWN) {
DEBUGC(DBCLASS_SIP, "sip_find_direction: no INCOMING RS (via header) found");
}
/*
@ -1219,6 +1233,9 @@ int sip_find_direction(sip_ticket_t *ticket, int *urlidx) {
}
}
} /* if type == DIRTYP_UNKNOWN */
if (type == DIRTYP_UNKNOWN) {
DEBUGC(DBCLASS_SIP, "sip_find_direction: no INCOMING (redirected) found");
}
if (type == DIRTYP_UNKNOWN) {