-
Notifications
You must be signed in to change notification settings - Fork 66
/
TODO
92 lines (68 loc) · 4.03 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
87
88
89
90
91
- If the SIP account password is changed on the server, then the client
modifies some contact, xcap PUT will keep failing with 401 even after
the password is reverted on the server. This will only be fixed by
deactivating/reactivating the account or restarting the application.
- 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