-
Notifications
You must be signed in to change notification settings - Fork 2
/
TODO
65 lines (50 loc) · 2.61 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
TODO for 0cpm Firmerware
========================
The current code is a demonstration of a core principle, an alpha
level implementation that does work. It demonstrates a way of getting
an IPv6 address anywhere, so as to enable embedded firmware to be
written as IPv6-only software. The framework presented requires no
network stack from the supporting OS, and indeed it can be built
directly on hardware after adding drivers for specific chips.
The current code contains a few things that may or may not be so good
in the end. After gaining some experience, it is good to have a good
look at:
* The mem[] array is untyped, calling for lots of cast commands. This
is not handy, and a result of the BPF-style architecture for netinput.
(The original idea was to do the entire processing in that style, but
it turned out not to be sufficiently flexible for that.)
* Must join multicast addresses for local addresses, as described in
http://tools.ietf.org/html/rfc4291 section 2.7.1, ff02::1:ff00:0/102
for solicited-node address. WIDE DHCPv6 server actually needs this.
Also join ff02::1 as the all-nodes address.
* The netdb module is underdeveloped. The bindings are not used as
they could be, there is no neighbour or ARP cache, there is no
storage for servers for dns, ntp, sip-proxy.
* tic55x's int.c driver: work out conditions for hibernation sleep.
In hibernation, also shutdown the codec.
* SIP handling:
+ UAC-tract: move from dialog-function to method-name
+ replace fixed offsets (sip + 8) with a startline parser routine
+ match client transactions for a given dialog
- correct timing and counts for client's initiation rituals
- ensure proper termination of dialogs (always have a timeout)
- handle SIP response codes from remote UASs
- handle SIP requests from remote UACs
- wrap distinction between request & response in a parser function
- process incoming requests (such as an INVITE)
- route headers
* create & use a irqtimer_stop_completely() that halts prepared fire()
* handle packet fragmentation
* test RTP sound playback. The retrocast tools can help with that:
basicast /etc/hosts 2001:980:420a:1:020b:82ff:fe19:a0f4 32768
* RTT handling:
- consider replacing the call to rtt_recv_keys() with a textapp wakeup
- show RTT on the display
* Transcoding: Now supported in spandsp (for G.711) -- this can go.
* T.38 fax support:
- exchange TIFF in fax-usable formats
- couple or drop logging
- link T.38 to the RTP stack
- link T.38 to the TFTP stack
- show on the interface what is going on
- figure out how much code is added for T.38 -- might be quite a lot