mirror of
git://git.psyced.org/git/psyced
synced 2024-08-15 03:25:10 +00:00
let the past begone in cvs land. welcome to igit igit!
This commit is contained in:
commit
4e601cf1c7
509 changed files with 77963 additions and 0 deletions
72
world/net/http/call.c
Normal file
72
world/net/http/call.c
Normal file
|
@ -0,0 +1,72 @@
|
|||
#include <net.h>
|
||||
#include <text.h>
|
||||
#include <ht/http.h>
|
||||
|
||||
protected mapping sessions = ([ ]);
|
||||
|
||||
string make_session(string nick, int expiry, string jack) {
|
||||
string sid;
|
||||
#ifndef TELEPHONY_EXPIRY
|
||||
# define TELEPHONY_EXPIRY expiry - time()
|
||||
#endif
|
||||
while (sessions[sid = RANDHEXSTRING]);
|
||||
sessions[sid] = ({ nick, expiry, jack });
|
||||
call_out( (: return m_delete(sessions, sid); :), TELEPHONY_EXPIRY);
|
||||
return sid;
|
||||
}
|
||||
|
||||
htget(prot, query, headers, qs) {
|
||||
#ifdef TELEPHONY_SERVER
|
||||
string sid = query["sid"];
|
||||
if (!(sid && sessions[sid])) {
|
||||
// no session found
|
||||
return;
|
||||
}
|
||||
if (sessions[sid][1] < time()) {
|
||||
// session expired
|
||||
return;
|
||||
}
|
||||
|
||||
string ni = sessions[sid][0];
|
||||
string t = query["thats"];
|
||||
|
||||
unless (t) {
|
||||
object uo = find_person(ni);
|
||||
if (!uo || !sendmsg(uo, "_notice_answer_talk_click",
|
||||
"Your phone call request has been clicked upon.", ([
|
||||
"_time_expire" : to_string(sessions[sid][1]),
|
||||
"_check_call" : sessions[sid][2],
|
||||
"_session" : sid,
|
||||
]))) {
|
||||
hterror(prot, R_GATEWTIMEOUT,
|
||||
"User cannot be reached.");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
htok3(prot, 0, "Expires: 0\n");
|
||||
localize(query["lang"], "html");
|
||||
w("_HTML_head");
|
||||
w("_HTML_call", 0, ([
|
||||
// "_path_object": "/static/call.swf",
|
||||
// "_amount_width_object": "330",
|
||||
// "_amount_height_object": "121",
|
||||
"_path_object_local": "/static/local.swf",
|
||||
"_path_object": "/static/remote.swf",
|
||||
"_amount_width_object": "320",
|
||||
"_amount_height_object": "240",
|
||||
// url = rtmp server
|
||||
"_uniform_server_media": TELEPHONY_SERVER,
|
||||
// stream infos (thats, user, expiry, jack)
|
||||
"_QUERY_STRING": qs,
|
||||
"_role": t ? "I": "U",
|
||||
"_nick": ni,
|
||||
"_time_expire": to_string(sessions[sid][1]),
|
||||
"_check_call" : sessions[sid][2],
|
||||
]));
|
||||
w("_HTML_tail");
|
||||
#else
|
||||
hterror(prot, R_NOTIMPLEM, // "_error_unavailable_telephony"
|
||||
"Sorry, no telephony configured on this server.");
|
||||
#endif
|
||||
return 1;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue