M3UA: Allow user to specify local SCTP Port number
diff --git a/src/m3ua_core.erl b/src/m3ua_core.erl
index 380e1b4..dccda2a 100644
--- a/src/m3ua_core.erl
+++ b/src/m3ua_core.erl
@@ -41,6 +41,7 @@
 	  user_pid,
 	  sctp_remote_ip,
 	  sctp_remote_port,
+	  sctp_local_port,
 	  sctp_sock,
 	  sctp_assoc_id
 	}).
@@ -50,7 +51,7 @@
 
 reconnect_sctp(L = #m3ua_state{sctp_remote_ip = Ip, sctp_remote_port = Port, sctp_sock = Sock}) ->
 	io:format("SCTP Reconnect ~p:~p~n", [Ip, Port]),
-	InitMsg = #sctp_initmsg{num_ostreams = 1, max_instreams = 1},
+	InitMsg = #sctp_initmsg{num_ostreams = 2, max_instreams = 2},
 	case gen_sctp:connect(Sock, Ip, Port, [{active, once}, {reuseaddr, true},
 					       {sctp_initmsg, InitMsg}]) of
 		{ok, Assoc} ->
@@ -60,11 +61,20 @@
 	end.
 
 init(InitOpts) ->
-	{ok, SctpSock} = gen_sctp:open([{active, once}, {reuseaddr, true}]),
+	OpenOptsBase = [{active, once}, {reuseaddr, true}],
+	LocalPort = proplists:get_value(sctp_local_port, InitOpts),
+	case LocalPort of
+		undefined ->
+			OpenOpts = OpenOptsBase;
+		_ ->
+			OpenOpts = OpenOptsBase ++ [{port, LocalPort}]
+	end,
+	{ok, SctpSock} = gen_sctp:open(OpenOpts),
 	LoopDat = #m3ua_state{role = asp, sctp_sock = SctpSock,
 				user_pid = proplists:get_value(user_pid, InitOpts),
 				sctp_remote_ip = proplists:get_value(sctp_remote_ip, InitOpts),
-				sctp_remote_port = proplists:get_value(sctp_remote_port, InitOpts)},
+				sctp_remote_port = proplists:get_value(sctp_remote_port, InitOpts),
+				sctp_local_port = LocalPort},
 	LoopDat2 = reconnect_sctp(LoopDat),
 	{ok, asp_down, LoopDat2}.