forked from AGProjects/python-sipsimple
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTODO
87 lines (64 loc) · 3.75 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
- Warning header takes a code (300-399) a hostname (not user agent) and a
message. Class allows any code (100-999) and we use engine.user_agent
for the hostname where we use this header in session.py
- 202 is deprecated (see https://tools.ietf.org/html/rfc6665#page-43)
- After ICE negotiation completed we do not save state and later re-INVITEs
can fail, we must send re-INVITE or UPDATE with chosen candidate
+ Allow resume of failed file transfers (a=file-range SDP attribute)
+ combine account.uri and account.contact into account.uri.aor and
account.uri.contact. This will also remove the confusion between
account.contact and account.contact_manager
+ change settings so they store changes in a thread local container
which is made public (accessible for all threads) when save is called.
This will make changes be atomic inside a thread (everything from
attribute changes up to the save operation is contained in the thread
and will not mix with changes done in parallel from other threads).
+ there is a race condition that can prevent an account to start if it is
created while the start method of SIPApplication runs and it passed the
point where it called AccountManager.start. A quick workaround is to
never create an account before SIPApplicationDidStart is posted
+ SIPApplication.start attempts to be restartable in case of errors, but
there are cases where it may enter into a state where it will raise
exceptions perpetually, even if the condition that led to the exception
was fixed.
- allow deleting transport on SIPURI
- modify Invitation/Request/Subscription to reset transport on request_uri
- in application.py it subscribes to notifications but doesn't remove them
when it stops
- End a session while in accepting state (requires session serialization)
- Model file transfer after desktop sharing (use handlers on termination)
have internal/external handlers (notifications based or file bridges)
- Use an ordered dict for keeping accounts in the AccountManager ?!?
see http://code.activestate.com/recipes/576693/
- send notifications when local/remote party becomes focus
SIPSessionLocalPartyIsFocus, SIPSessionRemotePartyIsFocus
- have higher level notifications on conference events
To fix this exception:
sip:[email protected]:52067 52067
sip:[email protected]:52067 52067
sip:[email protected];transport=tcp None
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/twisted/internet/base.py", line 778, in runUntilCurrent
call.func(*call.args, **call.kw)
File "/usr/lib/pymodules/python2.5/eventlet/hubs/twistedr.py", line 158, in call_if_greenlet_alive
return func(*args1, **kwargs1)
File "/usr/lib/pymodules/python2.5/eventlet/proc.py", line 571, in _run
result = function(*args, **kwargs)
File "/home/dan/work/voip/python-sipsimple/sipsimple/account.py", line 683, in _handle_commands
handler(command)
File "/home/dan/work/voip/python-sipsimple/sipsimple/account.py", line 720, in _CH_register
txtRecord=bonjour.TXTRecord(items=txtdata))
File "/home/dan/work/voip/blink-qt/sipsimple/bonjour.py", line 1125, in DNSServiceRegister
TypeError: an integer is required
- Notification from SIPApplication when a transport is added/removed to the
engine.
- SIPApplication should provide a list of supported transports that need to
be used instead of the ones from settings because not everything enabled
in settings may actually be available at runtime on the engine
- Build contacts on above notification instead of building them on the fly
- Use OpenH264 implementation
- We need the binaries?!
- Ability to start stream deactivated / on-hold
- VideoStream(direction='sendrecv') like MSRP?
- Review stream API, s/deactivate/shutdown/ ?
- Open the camera at its native framerate